1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-15 07:43:35 +00:00

[CL-179][PM-6011] open parent bit-nav-groups when bit-nav-item becomes active (#7801)

* add routing to nav-group stories

* open parent nav group when active
This commit is contained in:
Will Martin
2024-02-08 10:35:13 -05:00
committed by GitHub
parent 3371760779
commit 070d8556cf
4 changed files with 69 additions and 35 deletions

View File

@@ -1,23 +1,28 @@
import { Component, HostListener, Input } from "@angular/core";
import { Component, HostListener, Input, Optional } from "@angular/core";
import { IsActiveMatchOptions } from "@angular/router";
import { BehaviorSubject, map } from "rxjs";
import { NavBaseComponent } from "./nav-base.component";
import { NavGroupComponent } from "./nav-group.component";
@Component({
selector: "bit-nav-item",
templateUrl: "./nav-item.component.html",
providers: [{ provide: NavBaseComponent, useExisting: NavItemComponent }],
})
export class NavItemComponent extends NavBaseComponent {
/**
* Is `true` if `to` matches the current route
*/
private _active = false;
protected setActive(isActive: boolean) {
this._active = isActive;
private _isActive = false;
protected setIsActive(isActive: boolean) {
this._isActive = isActive;
if (this._isActive && this.parentNavGroup) {
this.parentNavGroup.setOpen(true);
}
}
protected get showActiveStyles() {
return this._active && !this.hideActiveStyles;
return this._isActive && !this.hideActiveStyles;
}
protected rlaOptions: IsActiveMatchOptions = {
paths: "subset",
@@ -54,4 +59,8 @@ export class NavItemComponent extends NavBaseComponent {
onFocusOut() {
this.focusVisibleWithin$.next(false);
}
constructor(@Optional() private parentNavGroup: NavGroupComponent) {
super();
}
}