import { Button } from "@repo/shadcn-ui/components/button"; import { FormDialog } from "@repo/shadcn-ui/components/form-dialog"; import { useQuery } from "@tanstack/react-query"; import { useState } from "react"; import { useTranslation } from "react-i18next"; import type { CompanyDTO } from "../../common"; import { MailFeedback } from "./mail-feedback"; import { mailboxApi, mailboxKeys } from "./mailbox-api"; import { MailboxUseForm } from "./mailbox-use-form"; export function MailboxRelations({ company, csrfToken, mailboxId, }: { company: CompanyDTO; csrfToken: string; mailboxId: string; }) { const { t } = useTranslation("companies"); const [editor, setEditor] = useState(); const query = useQuery({ queryKey: mailboxKeys.company(company.id), queryFn: () => mailboxApi.request(company.id), }); const uses = query.data?.uses.filter((item) => item.values.mailboxId === mailboxId) ?? []; const edited = uses.find((item) => item.id === editor); return (

{t("people")}

    {uses.map((item) => (
  • {company.people.find((person) => person.id === item.values.personId)?.name ?? t("people")}{" "} · {item.values.startDate} → {item.values.endDate ?? t("mailbox.openPeriod")} {!item.values.endDate && ( )}
  • ))}
{editor && ( { if (!open) { setEditor(undefined); } }} open title={t(edited ? "mailbox.closeUse" : "mailbox.linkPerson")} > setEditor(undefined)} use={edited} /> )}
); }