import React, { useEffect, useRef } from 'react'; import { useInventoryStore } from '../store/inventoryStore'; import { formatItemName } from '../utils/itemUtils'; import ItemIcon from './ItemIcon'; import './AlertsPanel.css'; function AlertsPanel({ isOpen, onClose }) { const alerts = useInventoryStore((state) => state.alerts) || []; const panelRef = useRef(null); // Close on click outside useEffect(() => { if (!isOpen) return; const handleClickOutside = (e) => { if (panelRef.current && !panelRef.current.contains(e.target)) { // Check if the click was on the bell button (has alerts-bell class) if (e.target.closest('.alerts-bell')) return; onClose(); } }; document.addEventListener('mousedown', handleClickOutside); return () => document.removeEventListener('mousedown', handleClickOutside); }, [isOpen, onClose]); // Close on Escape useEffect(() => { if (!isOpen) return; const handleEsc = (e) => { if (e.key === 'Escape') onClose(); }; document.addEventListener('keydown', handleEsc); return () => document.removeEventListener('keydown', handleEsc); }, [isOpen, onClose]); if (!isOpen) return null; return (