Sha256: 552c67f9a18315bd2f15484a9578c47a01415f9fc8c2543f1d50115b9df97e91
Contents?: true
Size: 930 Bytes
Versions: 92
Compression:
Stored size: 930 Bytes
Contents
import React, { useEffect } from "react"; import { Navigation } from "../components/Navigation"; import { AlertProvider, useAlerts } from '../components/AlertProvider'; import { usePage } from '@inertiajs/react'; interface PageProps { flash: Array<{ type: 'success' | 'error' | 'info'; message: string; }>; } function FlashMessageHandler({ children }: { children: React.ReactNode }) { const { showAlert } = useAlerts(); const { flash } = usePage<PageProps>().props; useEffect(() => { if (flash) { flash.forEach(({ type, message }) => { showAlert(type, message); }); } }, [flash, showAlert]); return <>{children}</>; } export default function Layout({ children }: { children: React.ReactNode }) { return ( <AlertProvider> <FlashMessageHandler> <Navigation> {children} </Navigation> </FlashMessageHandler> </AlertProvider> ); }
Version data entries
92 entries across 92 versions & 1 rubygems