From de4ad5dcf32eb3e1a9102251b0097e78e7a2cf59 Mon Sep 17 00:00:00 2001 From: mika kuns Date: Fri, 5 Jun 2026 10:27:47 +0200 Subject: [PATCH] feat(ui): maximize work console via green traffic-light dot --- src/ClaudeDo.Localization/locales/de.json | 3 ++ src/ClaudeDo.Localization/locales/en.json | 3 ++ .../Islands/DetailsIslandViewModel.cs | 8 +++++ .../Views/Islands/Detail/WorkConsole.axaml | 26 ++++++++++++++-- .../Views/Islands/DetailsIslandView.axaml | 15 +++++++--- .../Views/Islands/DetailsIslandView.axaml.cs | 30 +++++++++++++++++++ 6 files changed, 79 insertions(+), 6 deletions(-) diff --git a/src/ClaudeDo.Localization/locales/de.json b/src/ClaudeDo.Localization/locales/de.json index 5ba4a21..9128c2c 100644 --- a/src/ClaudeDo.Localization/locales/de.json +++ b/src/ClaudeDo.Localization/locales/de.json @@ -186,6 +186,9 @@ "chipDone": "FERTIG", "chipFailed": "FEHLGESCHLAGEN" }, + "console": { + "maximizeTip": "Terminal maximieren / wiederherstellen" + }, "modals": { "about": { "title": "ÜBER", diff --git a/src/ClaudeDo.Localization/locales/en.json b/src/ClaudeDo.Localization/locales/en.json index d2bd8f4..53ed65a 100644 --- a/src/ClaudeDo.Localization/locales/en.json +++ b/src/ClaudeDo.Localization/locales/en.json @@ -186,6 +186,9 @@ "chipDone": "DONE", "chipFailed": "FAILED" }, + "console": { + "maximizeTip": "Maximize / restore the terminal" + }, "modals": { "about": { "title": "ABOUT", diff --git a/src/ClaudeDo.Ui/ViewModels/Islands/DetailsIslandViewModel.cs b/src/ClaudeDo.Ui/ViewModels/Islands/DetailsIslandViewModel.cs index fdef6b6..13b13bb 100644 --- a/src/ClaudeDo.Ui/ViewModels/Islands/DetailsIslandViewModel.cs +++ b/src/ClaudeDo.Ui/ViewModels/Islands/DetailsIslandViewModel.cs @@ -62,6 +62,14 @@ public sealed partial class DetailsIslandViewModel : ViewModelBase partial void OnIsNotesModeChanged(bool value) => OnPropertyChanged(nameof(IsTaskDetailVisible)); partial void OnIsPrepModeChanged(bool value) => OnPropertyChanged(nameof(IsTaskDetailVisible)); + // Console maximize: green dot shrinks the description row to its MinHeight so + // the WorkConsole fills the rest. The row stays draggable and never overlaps. + // Applied in DetailsIslandView code-behind (RowDefinitions can't bind). + [ObservableProperty] private bool _isConsoleMaximized; + + [RelayCommand] + private void ToggleConsoleMaximized() => IsConsoleMaximized = !IsConsoleMaximized; + public NotesEditorViewModel Notes { get; private set; } = null!; // Current task row (set by IslandsShellViewModel via Bind) diff --git a/src/ClaudeDo.Ui/Views/Islands/Detail/WorkConsole.axaml b/src/ClaudeDo.Ui/Views/Islands/Detail/WorkConsole.axaml index c552f0d..383c122 100644 --- a/src/ClaudeDo.Ui/Views/Islands/Detail/WorkConsole.axaml +++ b/src/ClaudeDo.Ui/Views/Islands/Detail/WorkConsole.axaml @@ -24,6 +24,18 @@ + + + +