24 lines
624 B
TypeScript
24 lines
624 B
TypeScript
import React, { useState, useCallback } from 'react';
|
|
import { Toast, ToastContext } from './ToastContext';
|
|
|
|
export const ToastProvider: React.FC<{ children: React.ReactNode }> = ({
|
|
children
|
|
}) => {
|
|
const [toasts, setToasts] = useState<Toast[]>([]);
|
|
|
|
const showToast = useCallback((message: string) => {
|
|
const id = Date.now();
|
|
setToasts(prev => [...prev, { id, message }]);
|
|
|
|
setTimeout(() => {
|
|
setToasts(prev => prev.filter(toast => toast.id !== id));
|
|
}, 3000);
|
|
}, []);
|
|
|
|
return (
|
|
<ToastContext.Provider value={{ showToast, toasts }}>
|
|
{children}
|
|
</ToastContext.Provider>
|
|
);
|
|
};
|