@react95/core
Version:
Windows 95 styleguide
40 lines (39 loc) • 1.58 kB
JavaScript
;
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;