| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- import type { App } from "vue";
- import type { ICommonRoot } from "./CommonRoot.vue";
- import type { DialogAlertOptions } from "./DialogRoot.vue";
- import type { ToastShowProps } from "../feedback/Toast.vue";
- import type { ActionSheetOptions } from "./ActionSheetRoot.vue";
- const currentRootStack : ICommonRoot[] = [];
- export function setCurrentRoot(root : ICommonRoot) {
- currentRootStack.push(root);
- }
- export function destroyCurrentRoot(root : ICommonRoot) {
- const index = currentRootStack.indexOf(root);
- if (index !== -1)
- currentRootStack.splice(index, 1);
- }
- export function NaDialogRoot() : ICommonRoot {
- if (!currentRootStack.length)
- throw new Error("No dialog root found.");
- return currentRootStack[currentRootStack.length - 1];
- }
- export function alert(options: DialogAlertOptions) {
- return NaDialogRoot().alert(options);
- }
- export function confirm(options: DialogAlertOptions) {
- return NaDialogRoot().confirm(options);
- }
- export function toast(options: ToastShowProps|string) {
- return NaDialogRoot().toast(options);
- }
- export function closeToast() {
- return NaDialogRoot().closeToast();
- }
- export function actionSheet(options: ActionSheetOptions) {
- return NaDialogRoot().actionSheet(options);
- }
- export function notify(options: ToastShowProps) {
- return NaDialogRoot().notify(options);
- }
- let startZIndex = 1010;
- export function getCurrentZIndex() {
- startZIndex += 3;
- return startZIndex;
- }
- export default {
- install(app: App) {
- const na : ICommonRoot = {
- alert,
- confirm,
- toast,
- closeToast,
- actionSheet,
- notify,
- }
- app.config.globalProperties.$na = na;
- }
- }
|