@attio/react-native-bottom-sheet-toolbox-stack
Version:
39 lines (38 loc) • 998 B
JavaScript
;
import React from "react";
import { useBottomSheetToolboxStackContext } from "./context/bottom-sheet-toolbox-stack-context";
export function useBottomSheetToolboxStackSheet(name) {
const {
notifyClosed,
sheetStack,
activeSheet
} = useBottomSheetToolboxStackContext();
const sheetRef = React.useRef(null);
const [isReady, setIsReady] = React.useState(false);
const isActive = activeSheet === name;
const isMounted = sheetStack.includes(name);
React.useEffect(() => {
if (!isMounted) {
setIsReady(false);
}
}, [isMounted]);
return React.useMemo(() => ({
wrapperProps: {
sheetRef,
name,
isReady
},
sheetProps: {
ref: sheetRef,
onClose() {
notifyClosed(name);
},
onReadyChange(ready) {
setIsReady(ready);
}
},
isActive,
isMounted
}), [isActive, isMounted, isReady, name, notifyClosed]);
}
//# sourceMappingURL=use-bottom-sheet-toolbox-stack-sheet.js.map