import { DetailField } from "@repo/rdx-ui/components/detail-field"; import { EntityListHeader, EntityStatus } from "@repo/rdx-ui/components/entity-list"; import { LayersIcon } from "@repo/rdx-ui/lib/icons"; import { Button } from "@repo/shadcn-ui/components/button"; import { useQuery } from "@tanstack/react-query"; import { useTranslation } from "react-i18next"; import type { GlobalApplicationCapabilitiesDTO } from "../../../../common"; import { OperatingSystemProductFields } from "../../../global-operating-systems/shared/ui/operating-system-product-fields"; import { useGlobalSoftwareCatalog } from "../../shared/global-software-catalog-context"; import { GlobalApplicationFeedback } from "../../shared/ui/global-application-feedback"; import { GlobalApplicationAdministration } from "./global-application-administration"; export function GlobalApplicationDetail({ id, access, onEdit, }: { id: string; access: GlobalApplicationCapabilitiesDTO | undefined; onEdit: (id: string) => void; }) { const { api: globalApplicationsApi, keys: globalApplicationKeys, text, } = useGlobalSoftwareCatalog(); const { t } = useTranslation("resources"); const query = useQuery({ queryKey: globalApplicationKeys.detail(id), queryFn: () => globalApplicationsApi.detail(id), retry: false, }); const resource = query.data?.resource; return (
{query.isPending &&

{t(`${text}.loading`)}

} {query.isError && ( )} {resource && ( <> } title={resource.name} /> {access?.canManage ? ( ) : (
{resource.provider ?? "—"} {t(resource.active ? "active" : "inactive")} {resource.kind === "os" && } {resource.url ?? "—"} {resource.description ?? "—"}
)} )}
); }