Files
play-life/play-life-web/src/components/Toast.jsx
poignatov 932dba8682
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 34s
Унификация отображения ошибок: LoadingError для загрузки, Toast для действий
2026-01-11 15:51:28 +03:00

31 lines
743 B
JavaScript

import React, { useEffect, useState } from 'react'
import './Toast.css'
function Toast({ message, onClose, duration = 3000, type = 'success' }) {
const [isVisible, setIsVisible] = useState(true)
useEffect(() => {
const timer = setTimeout(() => {
setIsVisible(false)
setTimeout(() => {
onClose?.()
}, 300) // Ждем завершения анимации
}, duration)
return () => clearTimeout(timer)
}, [duration, onClose])
if (!isVisible) return null
return (
<div className={`toast toast-${type} ${isVisible ? 'toast-visible' : ''}`}>
<div className="toast-content">
<span className="toast-message">{message}</span>
</div>
</div>
)
}
export default Toast