28 lines
555 B
TypeScript
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);
|
|
}
|
|
});
|
|
}
|