"use client"; import { Plus } from "lucide-react"; import Link from "next/link"; import { useState } from "react"; import { useHireWizard } from "@/components/hire/HireWizardContext"; import type { OpenPositionResolved } from "@/lib/positions"; import { CreatePositionModal } from "./CreatePositionModal"; import { StaffInternallyModal } from "./StaffInternallyModal"; type Team = { id: string; org_number: string; name: string; lead: { id: string; name: string } | null; headcount: number; fte: number; openCount: number; }; type Department = { id: string; org_number: string; name: string; teams: Team[] }; type DivisionCard = { id: string; org_number: string; name: string; head: { id: string; name: string } | null; headcount: number; departments: Department[]; }; type OpenPositionWithDays = OpenPositionResolved & { daysOpen: number }; type PositionsPageClientProps = { openPositions: OpenPositionWithDays[]; divisionCards: DivisionCard[]; teams: { id: string; org_number: string; name: string; department_id: string }[]; }; export function PositionsPageClient({ openPositions, divisionCards, teams }: PositionsPageClientProps) { const { openWizard } = useHireWizard(); const [createOpen, setCreateOpen] = useState(false); const [staffTarget, setStaffTarget] = useState<{ id: string; title: string; is_lead: boolean } | null>(null); return (
Derzeit keine offenen Positionen.
) : (| Team | Teamleitung | Headcount | FTE | Offen |
|---|---|---|---|---|
|
{team.name}
{team.org_number}
|
{team.lead ? ( {team.lead.name} ) : ( "–" )} | {team.headcount} | {team.fte.toFixed(1)} | {team.openCount || "–"} |