From b421e7403f9129cc301928847e10fb35dc19f7c1 Mon Sep 17 00:00:00 2001 From: soryu Date: Sat, 24 Jan 2026 19:06:34 +0000 Subject: feat: add contract context to FileDetail component - Add contractId, contractName, and onContractClick props to FileDetailProps - Update breadcrumb navigation to show contract name with path separator when viewing file within a contract context - Fall back to "Back to list" when no contract context is provided - This enables the FileDetail component to be used within the /contracts/:contractId/files/:fileId route Co-Authored-By: Claude Opus 4.5 --- .../frontend/src/components/files/FileDetail.tsx | 35 ++++++++++++++++++---- 1 file changed, 29 insertions(+), 6 deletions(-) diff --git a/makima/frontend/src/components/files/FileDetail.tsx b/makima/frontend/src/components/files/FileDetail.tsx index a030c57..e1fe85f 100644 --- a/makima/frontend/src/components/files/FileDetail.tsx +++ b/makima/frontend/src/components/files/FileDetail.tsx @@ -37,6 +37,10 @@ interface FileDetailProps { onSelectVersion?: (version: number) => void; onRestoreVersion?: (version: number) => void; onClearVersionSelection?: () => void; + // Contract context props (for when file is viewed within a contract) + contractId?: string; + contractName?: string; + onContractClick?: () => void; } export function FileDetail({ @@ -65,6 +69,9 @@ export function FileDetail({ onSelectVersion, onRestoreVersion, onClearVersionSelection, + contractId, + contractName, + onContractClick, }: FileDetailProps) { const [isEditing, setIsEditing] = useState(false); const [name, setName] = useState(file.name); @@ -134,13 +141,29 @@ export function FileDetail({
{/* Header */}
+ {/* Breadcrumb navigation */}
- +
+ {contractId && contractName ? ( + <> + + / + Files + + ) : ( + + )} +
{isEditing ? ( <> -- cgit v1.2.3