mirror of
https://github.com/bitwarden/browser
synced 2026-01-27 23:03:45 +00:00
Add input for forcing active state on group & disable toggle (#18043)
This commit is contained in:
@@ -14,6 +14,7 @@
|
||||
[ariaLabel]="ariaLabel()"
|
||||
[hideActiveStyles]="parentHideActiveStyles()"
|
||||
[ariaCurrentWhenActive]="ariaCurrent()"
|
||||
[forceActiveStyles]="forceActiveStyles()"
|
||||
>
|
||||
<ng-template #button>
|
||||
<button
|
||||
|
||||
@@ -92,6 +92,12 @@ export class NavGroupComponent extends NavBaseComponent {
|
||||
*/
|
||||
readonly hideIfEmpty = input(false, { transform: booleanAttribute });
|
||||
|
||||
/** Forces active styles to be shown, regardless of the `routerLinkActiveOptions` */
|
||||
readonly forceActiveStyles = input(false, { transform: booleanAttribute });
|
||||
|
||||
/** Does not toggle the expanded state on click */
|
||||
readonly disableToggleOnClick = input(false, { transform: booleanAttribute });
|
||||
|
||||
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
|
||||
// eslint-disable-next-line @angular-eslint/prefer-output-emitter-ref
|
||||
@Output()
|
||||
@@ -129,7 +135,7 @@ export class NavGroupComponent extends NavBaseComponent {
|
||||
this.sideNavService.setOpen();
|
||||
}
|
||||
this.open.set(true);
|
||||
} else {
|
||||
} else if (!this.disableToggleOnClick()) {
|
||||
this.toggle();
|
||||
}
|
||||
this.mainContentClicked.emit();
|
||||
|
||||
@@ -168,3 +168,23 @@ export const Tree: StoryObj<NavGroupComponent> = {
|
||||
`,
|
||||
}),
|
||||
};
|
||||
|
||||
export const ForcedActive: StoryObj<NavGroupComponent> = {
|
||||
render: (args) => ({
|
||||
props: args,
|
||||
template: /*html*/ `
|
||||
<bit-side-nav>
|
||||
<bit-nav-group text="Hello World (Anchor)" [route]="['a']" icon="bwi-filter" [hideIfEmpty]="hideIfEmpty">
|
||||
<bit-nav-item text="Child A" route="a" icon="bwi-filter" *ngIf="renderChildren"></bit-nav-item>
|
||||
<bit-nav-item text="Child B" route="b" *ngIf="renderChildren"></bit-nav-item>
|
||||
<bit-nav-item text="Child C" route="c" icon="bwi-filter" *ngIf="renderChildren"></bit-nav-item>
|
||||
</bit-nav-group>
|
||||
<bit-nav-group text="Lorem Ipsum (Button)" icon="bwi-filter" forceActiveStyles disableToggleOnClick>
|
||||
<bit-nav-item text="Child A" icon="bwi-filter"></bit-nav-item>
|
||||
<bit-nav-item text="Child B"></bit-nav-item>
|
||||
<bit-nav-item text="Child C" icon="bwi-filter"></bit-nav-item>
|
||||
</bit-nav-group>
|
||||
</bit-side-nav>
|
||||
`,
|
||||
}),
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user