feat(modal): fix confirm and add notification

This commit is contained in:
DecDuck
2024-12-24 08:54:45 +11:00
parent 98fd24ceb9
commit 3530ee90ba
3 changed files with 121 additions and 6 deletions

View File

@ -1,5 +1,6 @@
import type { Component } from "vue";
import ConfirmationModal from "../components/ConfirmationModal.vue";
import NotificationModal from "../components/NotificationModal.vue";
export type ModalCallbackType<T extends ModalType> = (
event: ModalEvents[T],
@ -16,21 +17,30 @@ export interface ModalStackElement<T extends ModalType> {
export enum ModalType {
Confirmation,
Notification,
}
export type ModalEvents = {
[ModalType.Confirmation]: "confirm" | "cancel";
[ModalType.Notification]: "close";
};
export type ModalDatas = {
[ModalType.Confirmation]: {
title: string;
description: string;
buttonText?: string;
};
[ModalType.Notification]: {
title: string;
description: string;
buttonText?: string;
};
};
const modalComponents: { [key in ModalType]: Component } = {
[ModalType.Confirmation]: ConfirmationModal,
[ModalType.Notification]: NotificationModal,
};
export function createModal<T extends ModalType>(