UNPKG

@mantine/hooks

Version:

A collection of 50+ hooks for state and UI management

40 lines (39 loc) 888 B
"use client"; let react = require("react"); //#region packages/@mantine/hooks/src/use-disclosure/use-disclosure.ts function useDisclosure(initialState = false, options = {}) { const [opened, setOpened] = (0, react.useState)(initialState); const open = (0, react.useCallback)(() => { setOpened((isOpened) => { if (!isOpened) { options.onOpen?.(); return true; } return isOpened; }); }, [options.onOpen]); const close = (0, react.useCallback)(() => { setOpened((isOpened) => { if (isOpened) { options.onClose?.(); return false; } return isOpened; }); }, [options.onClose]); return [opened, { open, close, toggle: (0, react.useCallback)(() => { opened ? close() : open(); }, [ close, open, opened ]), set: setOpened }]; } //#endregion exports.useDisclosure = useDisclosure; //# sourceMappingURL=use-disclosure.cjs.map