GorhomSheetAdapter
The default adapter. Wraps @gorhom/bottom-sheet to provide feature-rich bottom sheets with snap points, spring animations, and swipe gestures.
BottomSheetManaged is available as a deprecated re-export from the same subpath for backward compatibility.
Installation
npm install @gorhom/bottom-sheet react-native-reanimated react-native-gesture-handler
Usage
import { GorhomSheetAdapter } from 'react-native-bottom-sheet-stack/gorhom';
import { BottomSheetView } from '@gorhom/bottom-sheet';
const MySheet = forwardRef((props, ref) => {
const { close } = useBottomSheetContext();
return (
<GorhomSheetAdapter ref={ref} snapPoints={['50%', '90%']}>
<BottomSheetView>
<Text>Sheet content</Text>
<Button title="Close" onPress={close} />
</BottomSheetView>
</GorhomSheetAdapter>
);
});
Props
Accepts all props from @gorhom/bottom-sheet. The adapter overrides enablePanDownToClose to true by default.
Backdrop
By default this adapter renders gorhom's backdropComponent as null so the stack manager's shared backdrop (BottomSheetBackdrop) is used instead. This is recommended — the manager's backdrop is stack-aware (correct opacity across stacked sheets, z-index, scale coordination, cascading tap-to-dismiss), which a per-sheet gorhom backdrop is not.
You can override it by passing your own backdropComponent, but it's not recommended unless you specifically need gorhom's backdrop behavior. When you do, the adapter automatically disables the manager backdrop for that sheet so the two never stack:
import { BottomSheetBackdrop as GorhomBackdrop } from '@gorhom/bottom-sheet';
<GorhomSheetAdapter snapPoints={['50%']} backdropComponent={GorhomBackdrop}>
{/* ... */}
</GorhomSheetAdapter>;
When to Use
- You need snap points, scrollable content, keyboard handling
- You want the most feature-rich bottom sheet experience
- Your app already uses
@gorhom/bottom-sheet