UNPKG

@ozen-ui/kit

Version:

React component library

31 lines (30 loc) 1.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useModalManager = useModalManager; var react_1 = require("react"); var Portal_1 = require("../Portal"); function useModalManager(ref, key, open) { var _a; var _b = (0, Portal_1.usePortalManager)(), portals = _b.portals, add = _b.add, remove = _b.remove; var index = 0; portals.forEach(function (portal, i) { if (portal.ref === ref) { index = i; } }); var refsClickOutside = index > -1 ? portals.slice(index + 1).map(function (_a) { var ref = _a.ref; return ref; }) : []; var filteredPortals = portals.filter(function (portal) { return portal.key === key; }); var isTop = ((_a = filteredPortals[filteredPortals.length - 1]) === null || _a === void 0 ? void 0 : _a.ref) === ref; (0, react_1.useEffect)(function () { if (open) { add({ ref: ref, key: key }); } return function () { remove(ref); }; }, [open, key]); return { portals: portals, refsClickOutside: refsClickOutside, isTop: isTop }; }