Anki/ts/routes/image-occlusion/toast-utils.svelte.ts
2025-07-27 18:24:09 +03:00

30 lines
662 B
TypeScript

import { mount, unmount } from "svelte";
import Toast from "./Toast.svelte";
import type { ToastProps } from "./types";
const toastProps: ToastProps = $state({
showToast: false,
type: "success",
message: "",
});
export function initToast(): Toast {
return mount(Toast, {
target: document.body,
props: toastProps,
});
}
export function destroyToast(toast: Toast) {
unmount(toast);
}
export function showToast(message: string, type: "success" | "error") {
toastProps.message = message;
toastProps.type = type;
toastProps.showToast = true;
}
export function hideToast() {
toastProps.showToast = false;
}