UNPKG

@spaced-out/ui-design-system

Version:
31 lines (30 loc) 951 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useModal = void 0; var _react = require("react"); var _motion = require("../../styles/variables/_motion"); const useModal = () => { const [isOpen, setIsOpen] = (0, _react.useState)(false); const [extras, setExtras] = (0, _react.useState)({}); const openModal = (0, _react.useCallback)(function () { let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; setExtras(props); setIsOpen(true); }, []); const closeModal = () => { setIsOpen(false); // Since the Dialog close uses animation and its duration is motionDurationNormal, we should clear the data after the animation duration for better user experience setTimeout(() => { setExtras({}); }, parseInt(_motion.motionDurationNormal)); }; return { isOpen, openModal, closeModal, extras }; }; exports.useModal = useModal;