UNPKG

@crossed/ui

Version:

A universal & performant styling library for React Native, Next.js & React

54 lines (53 loc) 1.32 kB
import { jsx } from "react/jsx-runtime"; import { useUncontrolled } from "@crossed/core"; import { forwardRef, useCallback, useRef } from "react"; import { sheetContext } from "./context"; import { useSharedValue } from "react-native-reanimated"; const Root = forwardRef( ({ open: openProps, defaultValue: defaultValueProps = false, onOpenChange, children, dismissOnOverlayPress = true, hideHandle, offset = 20 }, ref) => { const [open, setOpen] = useUncontrolled({ value: openProps, defaultValue: defaultValueProps, onChange: onOpenChange }); const isMove = useSharedValue(false); const height = useSharedValue(0); const snapInitialHeight = useSharedValue(0); const onClose = useCallback(() => { setOpen(false); height.value = 0; }, [setOpen, height]); const actionSheetRef = useRef(null); return /* @__PURE__ */ jsx( sheetContext.Provider, { value: { open, setOpen, dismissOnOverlayPress, hideHandle, isMove, height, onClose, snapInitialHeight, offset: offset + 40, ref, actionSheetRef }, children } ); } ); export { Root }; //# sourceMappingURL=Root.js.map