/
aaronair
/
Test_task_rt_solution
Обзор
Документация
Войти
/
aaronair
/
Test_task_rt_solution
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/components/Toast.tsx
33 строки
969 B
Ilikedrinkpivo
first_commit
28 май 2026, 14:51
28 май 2026, 14:51
b4498fc
Код
Авторство
О чём код?
import { useEffect, useState } from "react"; const TOAST_EVENT = "app:toast"; export function showToast(message: string) { window.dispatchEvent( new CustomEvent<string>(TOAST_EVENT, { detail: message }), ); } export function ToastHost() { const [message, setMessage] = useState<string | null>(null); useEffect(() => { function handler(e: Event) { const detail = (e as CustomEvent<string>).detail; setMessage(detail); const t = setTimeout(() => setMessage(null), 2400); return () => clearTimeout(t); } window.addEventListener(TOAST_EVENT, handler); return () => window.removeEventListener(TOAST_EVENT, handler); }, []); if (!message) return null; return ( <div className="fixed bottom-6 left-1/2 -translate-x-1/2 z-50 pointer-events-none"> <div className="pointer-events-auto rounded-lg bg-ink-900 text-white text-sm px-4 py-2.5 shadow-cardHover"> {message} </div> </div> ); }