UNPKG

vuestic-ui

Version:
1 lines 2.01 kB
{"version":3,"file":"useModalLevel.mjs","sources":["../../../../src/composables/useModalLevel.ts"],"sourcesContent":["import { computed, shallowReactive } from 'vue'\nimport { useComponentUuid } from './useComponentUuid'\n\nexport type ModalInStack = {\n id: string;\n // can add some modal info, methods here\n};\n\nconst modalsStack = shallowReactive<ModalInStack[]>([])\n\nexport const useModalLevel = () => {\n const modalId = useComponentUuid()\n const modalLevel = computed(() =>\n modalsStack.findIndex(({ id }) => id === String(modalId)),\n )\n const registerModal = () => {\n if (modalLevel.value !== -1) {\n return\n }\n\n modalsStack.push({\n id: String(modalId),\n })\n }\n const unregisterModal = () => {\n if (modalLevel.value === -1) {\n return\n }\n\n modalsStack.splice(modalLevel.value, 1)\n }\n\n const isTopLevelModal = computed(\n () => modalLevel.value !== -1 && modalLevel.value === modalsStack.length - 1,\n )\n const isLowestLevelModal = computed(\n () => modalLevel.value === 0,\n )\n const isMoreThenOneModalOpen = computed(() => modalsStack.length > 1)\n\n return {\n modalId,\n modalLevel,\n registerModal,\n unregisterModal,\n isTopLevelModal,\n isLowestLevelModal,\n isMoreThenOneModalOpen,\n }\n}\n"],"names":[],"mappings":";;AAQA,MAAM,cAAc,gBAAgC,CAAA,CAAE;AAE/C,MAAM,gBAAgB,MAAM;AACjC,QAAM,UAAU;AAChB,QAAM,aAAa;AAAA,IAAS,MAC1B,YAAY,UAAU,CAAC,EAAE,GAAS,MAAA,OAAO,OAAO,OAAO,CAAC;AAAA,EAAA;AAE1D,QAAM,gBAAgB,MAAM;AACtB,QAAA,WAAW,UAAU,IAAI;AAC3B;AAAA,IACF;AAEA,gBAAY,KAAK;AAAA,MACf,IAAI,OAAO,OAAO;AAAA,IAAA,CACnB;AAAA,EAAA;AAEH,QAAM,kBAAkB,MAAM;AACxB,QAAA,WAAW,UAAU,IAAI;AAC3B;AAAA,IACF;AAEY,gBAAA,OAAO,WAAW,OAAO,CAAC;AAAA,EAAA;AAGxC,QAAM,kBAAkB;AAAA,IACtB,MAAM,WAAW,UAAU,MAAM,WAAW,UAAU,YAAY,SAAS;AAAA,EAAA;AAE7E,QAAM,qBAAqB;AAAA,IACzB,MAAM,WAAW,UAAU;AAAA,EAAA;AAE7B,QAAM,yBAAyB,SAAS,MAAM,YAAY,SAAS,CAAC;AAE7D,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;"}