mobilizon.chapril.org-mobil.../js/src/plugins/dialog.ts
Thomas Citharel 151a7e54ae
Fix lint issues, update deps
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-09-20 17:06:42 +02:00

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);
},
};