store/resources/js/composables/useFlashToast.ts

28 lines
555 B
TypeScript

import { router } from '@inertiajs/vue3';
import { toast } from 'vue-sonner';
type Flash = {
success?: string | null;
error?: string | null;
};
function showFlash(flash: Flash): void {
if (flash.success) {
toast.success(flash.success);
}
if (flash.error) {
toast.error(flash.error);
}
}
export function useFlashToast(): void {
router.on('success', (event) => {
const flash = event.detail.page.props.flash as Flash | undefined;
if (flash) {
showFlash(flash);
}
});
}