@attio/react-native-bottom-sheet-toolbox-stack
Version:
44 lines (43 loc) • 1.31 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useBottomSheetToolboxStackSheet = useBottomSheetToolboxStackSheet;
var _react = _interopRequireDefault(require("react"));
var _bottomSheetToolboxStackContext = require("./context/bottom-sheet-toolbox-stack-context");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
function useBottomSheetToolboxStackSheet(name) {
const {
notifyClosed,
sheetStack,
activeSheet
} = (0, _bottomSheetToolboxStackContext.useBottomSheetToolboxStackContext)();
const sheetRef = _react.default.useRef(null);
const [isReady, setIsReady] = _react.default.useState(false);
const isActive = activeSheet === name;
const isMounted = sheetStack.includes(name);
_react.default.useEffect(() => {
if (!isMounted) {
setIsReady(false);
}
}, [isMounted]);
return _react.default.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