'use client'; import { createContext, useContext, useState, ReactNode } from 'react'; import { Notification, NotificationType } from './Notification'; type NotificationData = { id: string; type: NotificationType; message: string; duration?: number; }; interface NotificationContextType { showNotification: (type: NotificationType, message: string, duration?: number) => void; hideNotification: (id: string) => void; } const NotificationContext = createContext(undefined); export function NotificationProvider({ children }: { children: ReactNode }) { const [notifications, setNotifications] = useState([]); const showNotification = (type: NotificationType, message: string, duration?: number) => { const id = Math.random().toString(36).substring(2, 9); setNotifications(prev => [...prev, { id, type, message, duration }]); return id; }; const hideNotification = (id: string) => { setNotifications(prev => prev.filter(notification => notification.id !== id)); }; return ( {children} {notifications.map(notification => ( hideNotification(notification.id)} /> ))} ); } export function useNotification() { const context = useContext(NotificationContext); if (context === undefined) { throw new Error('useNotification must be used within a NotificationProvider'); } return context; }