Files
SBPanel-Backend/frontend/admin/node_modules/element-plus/es/hooks/use-modal/index.mjs
CN-JS-HuiBai db7f1ba82f
Some checks failed
build / build (api, amd64, linux) (push) Failing after -51s
build / build (api, arm64, linux) (push) Failing after -52s
build / build (api.exe, amd64, windows) (push) Failing after -51s
使用VUE重构项目
2026-04-20 00:19:11 +08:00

25 lines
778 B
JavaScript

import { EVENT_CODE } from "../../constants/aria.mjs";
import { getEventCode } from "../../utils/dom/event.mjs";
import { isClient, useEventListener } from "@vueuse/core";
import { watch } from "vue";
//#region ../../packages/hooks/use-modal/index.ts
const modalStack = [];
const closeModal = (e) => {
if (modalStack.length === 0) return;
if (getEventCode(e) === EVENT_CODE.esc) {
e.stopPropagation();
modalStack[modalStack.length - 1].handleClose();
}
};
const useModal = (instance, visibleRef) => {
watch(visibleRef, (val) => {
if (val) modalStack.push(instance);
else modalStack.splice(modalStack.indexOf(instance), 1);
});
};
if (isClient) useEventListener(document, "keydown", closeModal);
//#endregion
export { useModal };
//# sourceMappingURL=index.mjs.map