import { Building2Icon } from "@repo/rdx-ui/lib/icons"; import { useQuery } from "@tanstack/react-query"; import { useTranslation } from "react-i18next"; import { CompanyIdentity } from "../../../companies/shared/ui/company-identity"; import { BlockState, DashboardNavigationButton, DashboardPanel, DashboardTable, } from "../../shared"; import { dashboardApi, dashboardKeys } from "../../shared/api"; import type { DashboardNavigation } from "../../shared/helpers"; export function DashboardCompaniesPanel({ companyId, onDetails, onNavigate, }: { companyId: string | undefined; onDetails: () => void; onNavigate: (destination: DashboardNavigation) => void; }) { const { t } = useTranslation("companies"); const totals = useQuery({ queryKey: dashboardKeys.block("companies", companyId), queryFn: ({ signal }) => dashboardApi.companies(signal, companyId), staleTime: 0, }); return ( } title={t("dashboard.companySummary")} > {[ t("tickets.company"), t("dashboard.openTickets"), t("dashboard.pendingInterventions"), t("dashboard.registeredAssets"), t("people"), ].map((label) => ( {label} ))} {totals.data?.items.slice(0, 5).map((item) => ( onNavigate({ area: "company", id: item.id, section: "inventory" }) } > onNavigate({ area: "tickets", companyId: item.id, pendingOnly: true }) } > {item.tickets} onNavigate({ area: "interventions", companyId: item.id, pendingOnly: true, }) } > {item.interventions} onNavigate({ area: "company", id: item.id, section: "inventory" }) } > {t("dashboard.registeredAssets")} · {item.name}:{" "} {item.assets} onNavigate({ area: "company", id: item.id, section: "people" })} > {t("people")} · {item.name}:{" "} {item.people} ))} ); }