From 03ab90836707954277597dc21fd8035019d8e221 Mon Sep 17 00:00:00 2001 From: soryu Date: Sun, 25 Jan 2026 02:19:42 +0000 Subject: Move files tab and file pages to be accessible via contracts (#28) * feat: remove Files from top-level navigation Co-Authored-By: Claude Opus 4.5 * feat: update file links to use contract-scoped routes Co-Authored-By: Claude Opus 4.5 * 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 * feat: update routes to nest files under contracts - Add react-router-dom for client-side routing - Create ContractList component to list all contracts - Create ContractDetail component with tabs (overview, files, tasks, repos) - Create FileDetail component to view individual files - Configure routes: - /contracts - list all contracts - /contracts/:id - view contract details with Files tab - /contracts/:contractId/files/:fileId - view file in contract context - Remove standalone file routes (/files, /files/:id) Files are now only accessible through their parent contract. Co-Authored-By: Claude Opus 4.5 * Task completion checkpoint * Task completion checkpoint * Task completion checkpoint * Task completion checkpoint * Task completion checkpoint * Task completion checkpoint * Task completion checkpoint * Task completion checkpoint * feat: Add contract-scoped file route /contracts/:id/files/:fileId - Create ContractFilePage component for viewing files within contract context - Add route for /contracts/:id/files/:fileId in main.tsx - Update handleFileSelect in contracts.tsx to navigate to contract-scoped file URL - File viewer now has "Back to Contract" navigation instead of standalone /files This allows files accessed from a contract to maintain context and return to the contract page when going back. Co-Authored-By: Claude Opus 4.5 * Task completion checkpoint --------- Co-authored-by: Claude Opus 4.5 --- makima/frontend/src/main.tsx | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'makima/frontend/src/main.tsx') diff --git a/makima/frontend/src/main.tsx b/makima/frontend/src/main.tsx index 0464495..383b732 100644 --- a/makima/frontend/src/main.tsx +++ b/makima/frontend/src/main.tsx @@ -17,6 +17,7 @@ import MeshPage from "./routes/mesh"; import HistoryPage from "./routes/history"; import LoginPage from "./routes/login"; import SettingsPage from "./routes/settings"; +import ContractFilePage from "./routes/contract-file"; import TemplatesPage from "./routes/templates"; createRoot(document.getElementById("root")!).render( @@ -70,6 +71,14 @@ createRoot(document.getElementById("root")!).render( } /> + + + + } + />