import { Button } from "@repo/shadcn-ui/components/button"; import { useQuery } from "@tanstack/react-query"; import { useState } from "react"; import { useTranslation } from "react-i18next"; import type { CompanyDTO } from "../../../../common"; import { MailFeedback } from "../../../mail-configurations/shared/ui/mail-feedback"; import { MailboxUseEditorDialog } from "../../../mailbox-uses"; import { mailboxApi, mailboxKeys } from "../api"; 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); } }} onSaved={() => setEditor(undefined)} use={edited} /> )}
); }