/** * Контекст для управления всплывающими уведомлениями */ 'use client'; import React, { createContext, useContext, useState, useCallback, ReactNode } from 'react'; import { Toast, ToastMessage } from '@/components/common/Toast'; interface ToastContextType { showToast: (message: string, type?: 'success' | 'error' | 'info') => void; } const ToastContext = createContext(null); export function ToastProvider({ children }: { children: ReactNode }) { const [messages, setMessages] = useState([]); const showToast = useCallback((message: string, type: 'success' | 'error' | 'info' = 'info') => { const id = Math.random().toString(36).substring(2, 9); setMessages((prev) => [...prev, { id, message, type }]); }, []); const removeToast = useCallback((id: string) => { setMessages((prev) => prev.filter((msg) => msg.id !== id)); }, []); return ( {children} ); } export function useToast() { const context = useContext(ToastContext); if (!context) { throw new Error('useToast must be used within ToastProvider'); } return context; }