Bottom Sheet release notes

What changed in each release of @delacour/react-native-bottom-sheet, from the changesets that shipped it.

Every version of @delacour/react-native-bottom-sheet. The headless bottom sheet engine BottomSheet is built on. It shares one version with the other Delacour packages — see Release channels.

0.8.0

GitHub release

No changes to this package. It moved to keep the four versions in step.

0.7.0

GitHub release

Patch changes

  • #323 The sheet's Android back listener no longer re-subscribes when its methods change. An inline onOpenChange changed them on every parent render, and because BackHandler calls the newest listener first, the sheet's listener moved ahead of an overlay opened over it.

0.6.0

GitHub release

Patch changes

  • #298 asChild keeps the handler it donates when the child forwards an unset one. <BottomSheet.Trigger asChild><Button onPress={maybe} /></BottomSheet.Trigger> with maybe undefined now opens the sheet; before, the child's undefined replaced the trigger's onPress.

0.3.0

GitHub release

Minor changes

  • #278 BottomSheet takes keyboardLiftLimit="highestSnapPoint": the keyboard lifts the sheet no higher than its highest snap point, so a sheet resting there holds still and its body shrinks by the keyboard instead. Combobox opens at its full height with it, so its sheet no longer opens half-height, jumps up when the search field's keyboard rises, and drops back as the keyboard leaves on close. resolveComboboxSheetHeight takes only topInset and windowHeight now.

  • #262 BottomSheet takes keyboardLiftLimit. Set to "maxDynamicContentSize", a sheet sized to its content is lifted by a keyboard only as far as its cap, decided on the UI thread from the keyboard's first frame. Select opts in, so a searchable select no longer shoots to the top of the screen when the keyboard opens and then settles back to its cap.

Patch changes

  • #269 Combobox keeps its keyboard up while the results scroll; only a drag that carries the sheet down, or a close, puts it away. The sheet's scrollables now take a caller's keyboardDismissMode instead of always using interactive.

  • #284 Components no longer pass dependency arrays to Reanimated's useAnimatedStyle, useDerivedValue, useAnimatedReaction and useAnimatedScrollHandler. Reanimated ignores them on native and warned once per app in development: "Dependencies should only be used on the web and are always ignored on native". Nothing changes at runtime; the worklets still rebuild from their closures.

0.2.0

GitHub release

Minor changes

  • #226 Move to Expo SDK 58: React Native 0.88, React 19.3, Gesture Handler 3

    The peer floors are now react-native >=0.88 and react-native-gesture-handler >=3.3. React Native 0.88 types its components through the strict API by default, so every ref is typed as the host instance it receives — ViewInstance, TextInputInstance, ScrollViewInstance — rather than as the component, and ScreenScrollViewRef is now ScrollViewInstance. Those types do not exist before 0.88. The sheet's and the drawer's pans keep the builder API under Gesture Handler 3's LegacyPanGesture type. The CLI's verify:expo scaffolds against SDK 58.

0.1.0

GitHub release

Minor changes

  • #116 First alpha of @delacour/react-native-bottom-sheet, the headless bottom sheet engine @delacour/react-native-ui's BottomSheet is built on. Snap points and dynamic sizing in height space, handle, content and scrollable pans, over-drag, pan-down-to-close, a backdrop, keyboard behaviours driven by react-native-keyboard-controller, a sticky footer counted in the dynamic snap point, ScrollView / FlatList / SectionList bodies, a teleport portal with BottomSheetProvider and BottomSheet.Host, detached sheets, a typed step machine (defineSheetMachine, BottomSheet.Steps), an imperative ref and worklet haptic callbacks. Pure geometry ships from ./core. No className, no tokens; Fabric only.

  • #118 Detents are snap points everywhere, matching the snapPoints prop. DetentSpec is SnapPointSpec, onDetentHaptic is onSnapPointHaptic, useBottomSheetAnimated()'s detents is snapPoints, the internal detentCount is snapPointCount, and the core helpers follow (normalizeSnapPoints, parseSnapPoint, dynamicSnapPoint, crossedSnapPoint, snapPointUnder). The handle's accessibility value reads "Snap point 1 of 2". The docs page moves to /docs/bottom-sheet/snap-points.

Patch changes

  • #120 Add OverlayProvider, the layer every overlay is drawn on

    @delacour/react-native-ui/overlay mounts the one teleport host that overlays and bottom sheets share, and a registry that orders them in bands — every overlay above every sheet, an anchored panel above the dialog that opened it, a toast above both — and gives Android's back button to the topmost overlay only. Overlay.Portal, Overlay.Scrim, useOverlayPresence (keeps an overlay mounted through its exit animation) and useOverlayBackHandler are exported for building more. BottomSheetProvider now detects an OverlayProvider above or below it and mounts teleport's provider only once; the engine's provider takes hasPortalProvider to make that possible. bunx delacour add overlay copies it into a project.

On this page