feat(workspace): add expandable sidebar navigation - #1185
Conversation
|
@greptileai Please review this pull request, with particular attention to sidebar expansion/collapse behavior, LTR/RTL layout, hover and icon magnification states, responsive behavior, and navigation regressions. |
Greptile SummaryThis follow-up revision specifically addresses the two previously flagged concerns: the
Confidence Score: 5/5The follow-up revision correctly addresses both previously flagged concerns; no new functional defects were found. Both the reduced-motion specificity gap and the label-overlap gap have been closed. The hover scale can no longer fire for users who prefer reduced motion, and the expanded-mode gap is large enough (≈12 px clearance) to prevent icon-label paint overlap. The compact-breakpoint auto-collapse, RTL detection, and two-way model binding are all correctly implemented and well-tested. No files require special attention. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[User clicks rail-toggle button] --> B{isCompact?}
B -- Yes --> C[toggleExpanded returns early\nno state change]
B -- No --> D[expanded.update toggled]
D --> E[expandedChange emits new value]
E --> F[Parent: railExpanded.set value]
F --> G{New value true?}
G -- Yes --> H[rail gets .is-expanded class\nLabels rendered\nTooltips disabled\nGrid column: max-content]
G -- No --> I[rail collapses to 60 px icon-only\nLabels hidden\nTooltips re-enabled]
J[isCompact signal changes to true] --> K{expanded currently true?}
K -- Yes --> L[effect sets expanded false]
L --> E
K -- No --> M[No action needed]
subgraph CSS Motion
N[hover: hover AND pointer: fine] --> O[mat-icon scale 2.1x\nspecificity 0,2,1]
P[prefers-reduced-motion: reduce\nspecificity 0,2,1 — later in file] --> Q[transform: none wins\ntransition: none]
end
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
A[User clicks rail-toggle button] --> B{isCompact?}
B -- Yes --> C[toggleExpanded returns early\nno state change]
B -- No --> D[expanded.update toggled]
D --> E[expandedChange emits new value]
E --> F[Parent: railExpanded.set value]
F --> G{New value true?}
G -- Yes --> H[rail gets .is-expanded class\nLabels rendered\nTooltips disabled\nGrid column: max-content]
G -- No --> I[rail collapses to 60 px icon-only\nLabels hidden\nTooltips re-enabled]
J[isCompact signal changes to true] --> K{expanded currently true?}
K -- Yes --> L[effect sets expanded false]
L --> E
K -- No --> M[No action needed]
subgraph CSS Motion
N[hover: hover AND pointer: fine] --> O[mat-icon scale 2.1x\nspecificity 0,2,1]
P[prefers-reduced-motion: reduce\nspecificity 0,2,1 — later in file] --> Q[transform: none wins\ntransition: none]
end
Reviews (3): Last reviewed commit: "fix(workspace): harden sidebar magnifica..." | Re-trigger Greptile |
|
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #1185 +/- ##
===========================================
- Coverage 71.05% 59.07% -11.99%
===========================================
Files 40 594 +554
Lines 691 34303 +33612
Branches 87 7751 +7664
===========================================
+ Hits 491 20263 +19772
- Misses 176 11088 +10912
- Partials 24 2952 +2928
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
@greptileai please re-review the latest sidebar follow-up, especially reduced-motion hover behavior and expanded-label overflow containment. |
What changed
Why
The workspace rail previously used a second Dashboard-looking control for expansion, did not expose navigation labels, and lacked clear hover feedback. The dedicated toggle and expanded labels make the navigation easier to understand without changing the compact default layout.
User impact
Users can expand the sidebar to see translated destination names, collapse it back to icon-only navigation, and get stronger hover feedback without neighboring icons or text scaling. RTL locales align the expanded navigation correctly.
Validation
pnpm nx test workspace-shell-feature(117 tests passed)pnpm nx lint workspace-shell-featurepnpm nx lint electron-backend-e2e(0 errors; existing warnings only)pnpm nx run electron-backend-e2e:e2e-ci--src/smoke.e2e.ts(4 passed)git diff --check