'use client';
import { useEffect, useState } from 'react';
import { CheckCircle, AlertCircle, X } from 'lucide-react';
export type NotificationType = 'success' | 'error' | 'info';
interface NotificationProps {
type: NotificationType;
message: string;
duration?: number;
onClose?: () => void;
}
export function Notification({
type,
message,
duration = 5000, // Default duration of 5 seconds
onClose
}: NotificationProps) {
const [isVisible, setIsVisible] = useState(true);
useEffect(() => {
if (duration > 0) {
const timer = setTimeout(() => {
setIsVisible(false);
if (onClose) onClose();
}, duration);
return () => clearTimeout(timer);
}
}, [duration, onClose]);
const handleClose = () => {
setIsVisible(false);
if (onClose) onClose();
};
if (!isVisible) return null;
const getIcon = () => {
switch (type) {
case 'success':
return