48 lines
1.2 KiB
TypeScript
48 lines
1.2 KiB
TypeScript
import { FormDialog } from "@repo/shadcn-ui/components/form-dialog";
|
|
import type { ComponentProps } from "react";
|
|
import { useTranslation } from "react-i18next";
|
|
|
|
import { AssetDetail } from "./asset-detail";
|
|
import { AssetRelationships } from "./asset-relationships";
|
|
import { AssetSupport } from "./asset-support";
|
|
|
|
export function AssetDetailDialog({
|
|
asset,
|
|
lookups,
|
|
companyId,
|
|
csrfToken,
|
|
onClose,
|
|
}: {
|
|
asset: ComponentProps<typeof AssetDetail>["asset"];
|
|
lookups: ComponentProps<typeof AssetDetail>["lookups"];
|
|
companyId: string;
|
|
csrfToken: string;
|
|
onClose: () => void;
|
|
}) {
|
|
const { t } = useTranslation("assets");
|
|
|
|
return (
|
|
<FormDialog
|
|
cancelLabel={t("close")}
|
|
onOpenChange={(open) => {
|
|
if (!open) {
|
|
onClose();
|
|
}
|
|
}}
|
|
open
|
|
title={asset.values.name}
|
|
wide
|
|
>
|
|
<AssetDetail asset={asset} lookups={lookups}>
|
|
<AssetRelationships assetId={asset.id} companyId={companyId} csrfToken={csrfToken} />
|
|
<AssetSupport
|
|
assetId={asset.id}
|
|
companyId={companyId}
|
|
csrfToken={csrfToken}
|
|
retired={asset.values.status === "retired"}
|
|
/>
|
|
</AssetDetail>
|
|
</FormDialog>
|
|
);
|
|
}
|