151a7e54ae
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
100 lines
1.8 KiB
TypeScript
100 lines
1.8 KiB
TypeScript
import DialogComponent from "@/components/core/CustomDialog.vue";
|
|
import { App } from "vue";
|
|
|
|
export class Dialog {
|
|
private app: App;
|
|
|
|
constructor(app: App) {
|
|
this.app = app;
|
|
}
|
|
|
|
prompt({
|
|
title,
|
|
message,
|
|
confirmText,
|
|
cancelText,
|
|
variant,
|
|
hasIcon,
|
|
size,
|
|
onConfirm,
|
|
onCancel,
|
|
inputAttrs,
|
|
hasInput,
|
|
}: {
|
|
title?: string;
|
|
message: string;
|
|
confirmText?: string;
|
|
cancelText?: string;
|
|
variant?: string;
|
|
hasIcon?: boolean;
|
|
size?: string;
|
|
onConfirm?: (prompt: string) => void;
|
|
onCancel?: (source: string) => void;
|
|
inputAttrs?: Record<string, any>;
|
|
hasInput?: boolean;
|
|
}) {
|
|
this.app.config.globalProperties.$oruga.modal.open({
|
|
component: DialogComponent,
|
|
props: {
|
|
title,
|
|
message,
|
|
confirmText,
|
|
cancelText,
|
|
variant,
|
|
hasIcon,
|
|
size,
|
|
onConfirm,
|
|
onCancel,
|
|
inputAttrs,
|
|
hasInput,
|
|
},
|
|
});
|
|
}
|
|
|
|
confirm({
|
|
title,
|
|
message,
|
|
confirmText,
|
|
cancelText,
|
|
variant,
|
|
hasIcon,
|
|
size,
|
|
onConfirm,
|
|
onCancel,
|
|
}: {
|
|
title: string;
|
|
message: string;
|
|
confirmText?: string;
|
|
cancelText?: string;
|
|
variant: string;
|
|
hasIcon?: boolean;
|
|
size?: string;
|
|
onConfirm: () => any;
|
|
onCancel?: (source: string) => any;
|
|
}) {
|
|
console.debug("confirming something");
|
|
this.app.config.globalProperties.$oruga.modal.open({
|
|
component: DialogComponent,
|
|
props: {
|
|
title,
|
|
message,
|
|
confirmText,
|
|
cancelText,
|
|
variant,
|
|
hasIcon,
|
|
size,
|
|
onConfirm,
|
|
onCancel,
|
|
},
|
|
});
|
|
}
|
|
}
|
|
|
|
export const dialogPlugin = {
|
|
install(app: App) {
|
|
const dialog = new Dialog(app);
|
|
app.config.globalProperties.$dialog = dialog;
|
|
app.provide("dialog", dialog);
|
|
},
|
|
};
|