Skip to content

Commit

Permalink
[UX] Consolidate menu bars
Browse files Browse the repository at this point in the history
- Add expanded header option
- Move navControlsRight to left of help
- Rename HeaderLogo to HomeLoader
  - Serves as unified home button and global loading     indicator
  - Add title for tooltip, because purpose may not be obvious
- Rename Mark to HomeIcon
  - Uses home icon when header expanded by default
- Restore HeaderLogo for expanded header
  - Duplicate default logo, rename to match mark naming (default, dark)
- Add new nav control areas for expanded menu only
  - navControlsExpandedRight
  - navControlsExpandedCenter
- Add new body class for expanded header
  - used by styles to correctly set app height
  - remove unecessary duplicate header mixin inclusion

Signed-off-by: Josh Romero <rmerqg@amazon.com>
  • Loading branch information
joshuarrrr committed Jun 15, 2022
1 parent 10998c8 commit 22bbaf9
Show file tree
Hide file tree
Showing 19 changed files with 571 additions and 294 deletions.
2 changes: 2 additions & 0 deletions src/core/public/chrome/chrome_service.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -257,6 +257,8 @@ export class ChromeService {
navControlsLeft$={navControls.getLeft$()}
navControlsCenter$={navControls.getCenter$()}
navControlsRight$={navControls.getRight$()}
navControlsExpandedCenter$={navControls.getExpandedCenter$()}
navControlsExpandedRight$={navControls.getExpandedRight$()}
onIsLockedUpdate={setIsNavDrawerLocked}
isLocked$={getIsNavDrawerLocked$}
branding={injectedMetadata.getBranding()}
Expand Down
24 changes: 24 additions & 0 deletions src/core/public/chrome/nav_controls/nav_controls_service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,10 @@ export class NavControlsService {
const navControlsLeft$ = new BehaviorSubject<ReadonlySet<ChromeNavControl>>(new Set());
const navControlsRight$ = new BehaviorSubject<ReadonlySet<ChromeNavControl>>(new Set());
const navControlsCenter$ = new BehaviorSubject<ReadonlySet<ChromeNavControl>>(new Set());
const navControlsExpandedRight$ = new BehaviorSubject<ReadonlySet<ChromeNavControl>>(new Set());
const navControlsExpandedCenter$ = new BehaviorSubject<ReadonlySet<ChromeNavControl>>(
new Set()
);

return {
// In the future, registration should be moved to the setup phase. This
Expand All @@ -91,6 +95,16 @@ export class NavControlsService {
registerCenter: (navControl: ChromeNavControl) =>
navControlsCenter$.next(new Set([...navControlsCenter$.value.values(), navControl])),

registerExpandedRight: (navControl: ChromeNavControl) =>
navControlsExpandedRight$.next(
new Set([...navControlsExpandedRight$.value.values(), navControl])
),

registerExpandedCenter: (navControl: ChromeNavControl) =>
navControlsExpandedCenter$.next(
new Set([...navControlsExpandedCenter$.value.values(), navControl])
),

getLeft$: () =>
navControlsLeft$.pipe(
map((controls) => sortBy([...controls.values()], 'order')),
Expand All @@ -106,6 +120,16 @@ export class NavControlsService {
map((controls) => sortBy([...controls.values()], 'order')),
takeUntil(this.stop$)
),
getExpandedRight$: () =>
navControlsExpandedRight$.pipe(
map((controls) => sortBy([...controls.values()], 'order')),
takeUntil(this.stop$)
),
getExpandedCenter$: () =>
navControlsExpandedCenter$.pipe(
map((controls) => sortBy([...controls.values()], 'order')),
takeUntil(this.stop$)
),
};
}

Expand Down
178 changes: 102 additions & 76 deletions src/core/public/chrome/ui/header/__snapshots__/header.test.tsx.snap

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 22bbaf9

Please sign in to comment.