UNPKG

@react95/core

Version:
40 lines (39 loc) 1.58 kB
"use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const React = require("react"); const modalController = require("./modal-controller.cjs"); const modalTypes = require("./modal-types.cjs"); const useModal = () => { const add = React.useCallback((modal) => { modalController.modals.emit(modalTypes.ModalEvents.AddModal, modal); }, []); const remove = React.useCallback((id) => { modalController.modals.emit(modalTypes.ModalEvents.RemoveModal, { id }); }, []); const minimize = React.useCallback((id) => { modalController.modals.emit(modalTypes.ModalEvents.MinimizeModal, { id }); }, []); const restore = React.useCallback((id) => { modalController.modals.emit(modalTypes.ModalEvents.RestoreModal, { id }); }, []); const focus = React.useCallback((id) => { modalController.modals.emit(modalTypes.ModalEvents.ModalVisibilityChanged, { id }); }, []); const toggle = React.useCallback((id, isActive) => { if (isActive) { modalController.modals.emit(modalTypes.ModalEvents.MinimizeModal, { id }); } else { modalController.modals.emit(modalTypes.ModalEvents.RestoreModal, { id }); modalController.modals.emit(modalTypes.ModalEvents.ModalVisibilityChanged, { id }); } }, []); const subscribe = React.useCallback( (event, callback) => { modalController.modals.on(event, callback); return () => modalController.modals.off(event, callback); }, [] ); return { add, remove, minimize, restore, focus, toggle, subscribe }; }; exports.useModal = useModal;