"use client" import { useState, useEffect } from "react" import { useRouter } from "next/navigation" import { Button } from "@/components/ui/button" import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" import { Shield, ShieldAlert, ShieldX, Settings, LogOut, Users, ShieldCheck, Home, Sun, Smile } from "lucide-react" import { type User, ROLE_NAMES } from "@/types/user" export default function DashboardPage() { const [user, setUser] = useState(null) const [selectedStatus, setSelectedStatus] = useState(null) const [lastUpdated, setLastUpdated] = useState(null) const [loading, setLoading] = useState(false) const router = useRouter() useEffect(() => { const userData = localStorage.getItem("user") if (!userData) { router.push("/login") return } const parsedUser = JSON.parse(userData) setUser(parsedUser) setSelectedStatus(parsedUser.in_shelter) setLastUpdated(parsedUser.last_updated) }, [router]) const handleStatusUpdate = async (status: string) => { if (!user) return setLoading(true) try { const response = await fetch("/api/status/update", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ nationalId: user.national_id, status, }), }) if (response.ok) { setSelectedStatus(status) setLastUpdated(new Date().toLocaleString("he-IL")) } } catch (err) { console.error("Error updating status:", err) } finally { setLoading(false) } } const handleLogout = () => { localStorage.removeItem("user") router.push("/login") } const canAccessAdmin = () => { return !!user?.role && user.role !== "user" } if (!user) return null const getStatusText = (status: string) => { switch (status) { case "yes": return "במקלט/חדר מוגן" case "no": return "לא במקלט - אין מקלט בקרבת מקום" case "no_alarm": return "אין אזעקה באזור שלי" case "safe_after_exit": return "אני בטוח (אחרי יציאה מהמקלט)" default: return "" } } return (
שלום {user.name}
{ROLE_NAMES[user.role] || user.role} {user.field && ` - תחום ${user.field}`} {user.department && ` - מסגרת ${user.department}`} {user.team && ` - צוות ${user.team}`}
{canAccessAdmin() && ( )}
{selectedStatus && lastUpdated && (

סטטוס נוכחי:

{getStatusText(selectedStatus)}

עודכן: {lastUpdated}

)} {/* Hostname Footer */}
סביבה: {process.env.NEXT_PUBLIC_HOSTNAME || process.env.HOSTNAME || "לא זוהה"}
גרסה: {process.env.APPVERSION || "לא הוגדרה גרסה ב-Dockerfile!"}
2025 COPYRIGHT TR-WEB
) }