import { useEffect, useState } from "react";
import { Pencil } from "lucide-react";
import OmsorgCard from "../../components/OmsorgCard";
import OmsorgBadge from "../../components/ui/OmsorgBadge";
import OmsorgButton from "../../components/ui/OmsorgButton";
import { useAuth } from "../../app/AuthContext";
import EmployeeTabs from "./EmployeeTabs";
import EditEmployeeDialog from "./EditEmployeeDialog";
function getInitials(firstName = "", lastName = "") {
return `${firstName[0] ?? ""}${lastName[0] ?? ""}`.toUpperCase();
}
function formatDate(value) {
if (!value) return "—";
return new Date(value).toLocaleDateString("de-DE");
}
function formatAddress(employee) {
const line = [employee.postalCode, employee.city].filter(Boolean).join(" ");
const parts = [employee.street, line].filter(Boolean);
if (employee.country && employee.country !== "Deutschland") {
parts.push(employee.country);
}
return parts.length > 0 ? parts.join(", ") : "—";
}
export default function EmployeeDetailPanel({ employee, onUpdated }) {
const { hasPermission } = useAuth();
const canEdit = hasPermission("Employees", "Edit");
const [activeTab, setActiveTab] = useState("overview");
const [isEditDialogOpen, setIsEditDialogOpen] = useState(false);
useEffect(() => {
setActiveTab("overview");
}, [employee?.id]);
if (!employee) {
return (
Wähle links einen Mitarbeiter aus.Keine Personalakte ausgewählt
Hier werden später Arbeitsverträge, Nachweise und weitere Dokumente angezeigt.
Hier erscheint später der Arbeitsvertrag mit Beginn, Ende und Konditionen.
Hier erscheinen später Ausbildung, Zertifikate und Fortbildungen.
Hier wird später die komplette Einsatzhistorie angezeigt.
{employee.phoneNumber ?? "—"}
{employee.email ?? "—"}
{formatAddress(employee)}
{formatDate(employee.dateOfBirth)}
{formatDate(employee.entryDate)}
{formatDate(employee.exitDate)}
{employee.employmentType ?? "—"}
{employee.qualification ?? "—"}
{employee.emergencyContactName ? `${employee.emergencyContactName}${ employee.emergencyContactRelation ? ` (${employee.emergencyContactRelation})` : "" }${employee.emergencyContactPhone ? ` — ${employee.emergencyContactPhone}` : ""}` : "—"}