feat(web): implement new titlebar (HeaderV2)#595
feat(web): implement new titlebar (HeaderV2)#595kyasbal wants to merge 7 commits intoGoogleCloudPlatform:epic/golden-layoutfrom
Conversation
There was a problem hiding this comment.
Code Review
This pull request introduces a major refactoring of the application's header and menu management system, transitioning to a 'Smart/Dumb' component architecture with the new HeaderV2Component and MenuManager service. It also replaces the BackendConnectionService with a signal-based BackendSyncService using Angular's rxResource. While the architectural shift is positive, there are critical issues in the synchronization logic where a single failed poll will permanently stop background updates. Additionally, the menu normalization logic inside the computed signal is inefficient and may cause state loss due to the recreation of signal instances on every change. Finally, the use of !important in the new SCSS files should be avoided to maintain style maintainability.
e33cb75 to
3a034f8
Compare
Signed-off-by: kyasbal <ikakeru@google.com>
- Remove aria-hidden="true" from the menu item label span in header-v2.component.html - Add variables for badge and status dot colors in header-v2.component.scss - Replace hardcoded color values with new variables in header-v2.component.scss - Add :host header .menu-group rule in header-v2.component.scss - Reorder properties in multiple CSS rules in header-v2.component.scss - Change :host display from block to contents in header-v2-smart.component.scss - Remove createMenuGroupViewModel in menu-manager.service.ts - Change groupsSignal to store MenuGroupViewModel instead of MenuGroup in menu-manager.service.ts - Update groups computed property to remove the call to createMenuGroupViewModel - Update addGroup to ensure icon is a string by defaulting to empty string - Update addItem to call createMenuItemViewModel before pushing to group.items - Remove Japanese text from a comment in menu-manager.service.spec.ts
Motivation
With the integration of Golden Layout, we need a new header (TitleBar) to optimize screen space and provide centralized menu management. This PR introduces
HeaderV2and aMenuManagerservice to decouple layout controls and global actions from individual panels.Important
This PR depends on #594 (BackendSync refactor). Please merge #594 first.
Changes
HeaderV2component with a modern design optimized for Golden Layout.MenuManagerservice to centralize the registration and state of menu items.日本語訳
タイトル
feat(web): 新しいタイトルバー (HeaderV2) の実装
動機
Golden Layout の導入に伴い、画面スペースを最適化し、中央集権的なメニュー管理を提供するための新しいヘッダー(TitleBar)が必要になりました。この PR では、レイアウトコントロールやグローバルアクションを個別のパネルから分離するために、
HeaderV2とMenuManagerサービスを導入します。Important
この PR は #594 (BackendSync refactor) に依存しています。先に #594 をマージしてください。
変更点
HeaderV2コンポーネントを作成しました。MenuManagerサービスを導入しました。