1
0
mirror of https://github.com/bitwarden/browser synced 2026-02-04 02:33:33 +00:00

reduce amount of menuitem type casting

This commit is contained in:
Bryan Cunningham
2026-01-09 13:16:01 -05:00
parent 4d99f1ec59
commit c8f1db9682

View File

@@ -1,4 +1,4 @@
import { FocusKeyManager, CdkTrapFocus, FocusableOption } from "@angular/cdk/a11y";
import { FocusKeyManager, CdkTrapFocus } from "@angular/cdk/a11y";
import {
Component,
Output,
@@ -34,11 +34,12 @@ export class MenuComponent implements AfterContentInit {
ngAfterContentInit() {
if (this.ariaRole() === "menu") {
this.keyManager = new FocusKeyManager(
this.menuItems() as unknown as (FocusableOption & MenuItemComponent)[],
)
// Type cast is necessary because MenuItemComponent.disabled is a ModelSignal<boolean>
// to satisfy ButtonLikeAbstraction, but FocusKeyManager expects disabled?: boolean.
// The skipPredicate correctly calls disabled() to read the signal value.
this.keyManager = new FocusKeyManager<MenuItemComponent>(this.menuItems() as any)
.withWrap()
.skipPredicate((item) => !!(item as MenuItemComponent).disabled());
.skipPredicate((item: MenuItemComponent) => !!item.disabled());
}
}
}