import React, { useState, useEffect } from 'react'; import { Search, Bell, Clock, LogOut, Home, ArrowLeft } from 'lucide-react'; import { useNavigate } from 'react-router-dom'; import { logout } from '../utils/auth'; import './TopBar.css'; export const TopBar: React.FC = () => { const [time, setTime] = useState(new Date()); const navigate = useNavigate(); useEffect(() => { const timer = setInterval(() => setTime(new Date()), 1000); return () => clearInterval(timer); }, []); const handleLogout = () => { logout(); }; const user = React.useMemo(() => { try { const stored = localStorage.getItem('teleems_user'); if (!stored || stored === 'undefined' || stored === 'null') return {}; const parsed = JSON.parse(stored); return parsed && typeof parsed === 'object' ? parsed : {}; } catch { return {}; } }, []); const displayName = String(user.username || 'Admin'); const rawRole = Array.isArray(user.roles) ? (user.roles[0] || 'Administrator') : 'Administrator'; const roleLabel = rawRole .replace(/_/g, ' ') .replace('CURESELECT ADMIN', 'CS ADMIN') .replace('HOSPITAL ADMIN', 'H. ADMIN') .replace('FLEET OPERATOR', 'FLEET OPS') .replace('STATION INCHARGE', 'STATION IC'); const initials = displayName.substring(0, 2).toUpperCase() || 'AD'; const formattedTime = time.toLocaleTimeString('en-US', { hour12: false, timeZone: 'Asia/Kolkata', hour: '2-digit', minute: '2-digit' }); const tzLabel = 'IST'; return (
{formattedTime} {tzLabel}
3
{initials}
{displayName} {roleLabel} • Logout
); };