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:
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user