-
-
Notifications
You must be signed in to change notification settings - Fork 0
T-235: TerminalGrid.tsx — 1-4 panes responsive layout + add/close + i18n keys #130
Copy link
Copy link
Open
Labels
priority:P0Priority P0 — must land in sprintPriority P0 — must land in sprintscope: frontendReact / Tauri webview / xterm / CodeMirrorReact / Tauri webview / xterm / CodeMirrorsprint:2026-05-14Sprint 2026-05-14 (Sprint 3) — terminals & PTY foundationSprint 2026-05-14 (Sprint 3) — terminals & PTY foundationtrack:CTrack C — frontend (React, Tailwind, Zustand, i18n)Track C — frontend (React, Tailwind, Zustand, i18n)type:featureFeature work (new capability)Feature work (new capability)
Metadata
Metadata
Assignees
Labels
priority:P0Priority P0 — must land in sprintPriority P0 — must land in sprintscope: frontendReact / Tauri webview / xterm / CodeMirrorReact / Tauri webview / xterm / CodeMirrorsprint:2026-05-14Sprint 2026-05-14 (Sprint 3) — terminals & PTY foundationSprint 2026-05-14 (Sprint 3) — terminals & PTY foundationtrack:CTrack C — frontend (React, Tailwind, Zustand, i18n)Track C — frontend (React, Tailwind, Zustand, i18n)type:featureFeature work (new capability)Feature work (new capability)
Goal
src/features/terminals/TerminalGrid.tsx: responsive grid that lays out 1-4<Terminal />panes (CSS Gridrepeat(auto-fit, minmax(...))) with an "Add terminal" tab button and per-pane close button. ReadsuseTerminalsStore. No state of its own beyond layout.Layout rules:
Per ARCHI §11.5: limit configurable later via
AppSettings. Hard-coded 4 cap here, follow-up issue tracks dynamic limit.Acceptance criteria
useTerminalsStore.open({ project_id, cols: 100, rows: 32 }); disabled at capuseTerminalsStore.close(id)ring-2 ring-primary)src/shared/i18n/locales/{en,fr}.json(T-222 parity test must stay green):terminals.add/terminals.close/terminals.exited/terminals.maxReachedit("should render 4 grid panes when 4 terminals are open")it("should disable add button when 4 terminals are open")it("should call close on store when close button clicked")pnpm exec oxlint . --max-warnings=0clean; vitest snapshots regeneratedFiles to create/modify
src/features/terminals/TerminalGrid.tsxsrc/features/terminals/TerminalGrid.test.tsxsrc/shared/i18n/locales/en.jsonsrc/shared/i18n/locales/fr.jsonsrc/App.tsxto add a/terminalsroute or expose grid where appropriateReferences
Dependencies
Blocked by T-234.