mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-30 12:18:11 +00:00
50 lines
1.3 KiB
TypeScript
50 lines
1.3 KiB
TypeScript
import { Anchor as AnchorIcon } from "lucide-react";
|
|
import { Code } from "@mantine/core";
|
|
|
|
import type { BookingDetail } from "@/types/booking";
|
|
import { LinkedEntityCard } from "@/components/detail";
|
|
import type { FieldRowProps } from "@/components/detail";
|
|
|
|
export interface BookingContractCardProps {
|
|
booking: BookingDetail;
|
|
}
|
|
|
|
/** Parent contract quick info for the booking, linking to its detail page. */
|
|
export function BookingContractCard({ booking }: BookingContractCardProps) {
|
|
if (!booking.contractId || !booking.contractReference) return null;
|
|
|
|
const rows: FieldRowProps[] = [
|
|
{
|
|
label: "Kind",
|
|
value: booking.contractKind === "GENERAL" ? "General" : "One-time",
|
|
},
|
|
];
|
|
|
|
return (
|
|
<LinkedEntityCard
|
|
icon={AnchorIcon}
|
|
title="Contract"
|
|
name={booking.contractReference}
|
|
to={`/dashboard/contract-requests/${booking.contractId}`}
|
|
accent="teal"
|
|
rows={rows}
|
|
footer={
|
|
booking.contractSummary ? (
|
|
<Code
|
|
block
|
|
mt={4}
|
|
style={{
|
|
maxHeight: 220,
|
|
overflow: "auto",
|
|
whiteSpace: "pre-wrap",
|
|
background: "var(--mantine-color-gray-0)",
|
|
}}
|
|
>
|
|
{booking.contractSummary}
|
|
</Code>
|
|
) : undefined
|
|
}
|
|
/>
|
|
);
|
|
}
|