Files
front-AT/app/Components/AlertBox/AlertBox.tsx
T

38 lines
803 B
TypeScript
Raw Normal View History

2025-09-17 19:42:13 -06:00
'use client'
import { useEffect, useState } from "react";
import "./AlertBox.css";
interface AlertBoxProps {
2025-09-22 11:57:52 -06:00
message: string | null;
2025-09-17 19:42:13 -06:00
type: "error" | "success";
duration?: number;
}
export default function AlertBox({ message, type, duration = 6000 }: AlertBoxProps) {
const [visible, setVisible] = useState(false);
const [text, setText] = useState("");
useEffect(() => {
if (message) {
setText(message);
setVisible(true);
const timeout = setTimeout(() => {
setVisible(false);
setTimeout(() => setText(""), 500);
}, duration);
return () => clearTimeout(timeout);
}
}, [message, duration]);
if (!text) return null;
return (
<div className={`messageBox ${type} ${!visible ? "hidden" : ""}`}>
{text}
</div>
);
}