import type { WorkstationDTO } from "@metis/assets/common"; import { FormDialog } from "@repo/shadcn-ui/components/form-dialog"; import { useTranslation } from "react-i18next"; import type { WorkProfileDTO } from "../../common/work-profiles"; export function WorkProfileHistoryDialog({ profile, workstations, person, asset, account, onClose, }: { profile: WorkProfileDTO; workstations: readonly WorkstationDTO[]; person: (id: string) => string; asset: (id: string) => string; account: (id: string | null) => string; onClose: () => void; }) { const { t, i18n } = useTranslation("companies"); return ( { if (!open) { onClose(); } }} open title={t("profiles.history")} wide >

{person(profile.values.personId)} · {asset(profile.values.assetId)}

{t("profiles.account")}: {account(profile.values.accountId)}

{profile.needsReview &&

{t("profiles.review")}

}

{t("profiles.unknownConfiguration")}

{t("profiles.stations")}

{workstations .filter( (station) => station.values.active && [...station.values.assetIds, ...station.values.sharedAssetIds].includes( profile.values.assetId ) ) .map((station) => station.values.name) .join(" · ") || t("profiles.noStation")}

    {[...profile.history].reverse().map((revision) => (
  1. {new Intl.DateTimeFormat(i18n.language, { dateStyle: "medium", timeStyle: "short", }).format(new Date(revision.recordedAt))}{" "} · {revision.actorName}

    {revision.values.name} ·{" "} {t(revision.values.active ? "profiles.active" : "profiles.inactive")}

    {account(revision.values.accountId)}

    {revision.values.notes && (

    {revision.values.notes}

    )}
  2. ))}
); }