import { Emitter } from "@noya-app/emitter"; import { MenuItem } from "@noya-app/noya-designsystem"; import { isDeepEqual } from "@noya-app/noya-utils"; import { Observable } from "@noya-app/observable"; export class MenuManager extends Emitter<[T]> { leftMenuItems$ = new Observable[]>([], { isEqual: isDeepEqual, }); rightMenuItems$ = new Observable[]>([], { isEqual: isDeepEqual, }); allMenuItems$ = Observable.combine( [this.leftMenuItems$, this.rightMenuItems$], ([left, right]) => [...left, ...right], { isEqual: isDeepEqual } ); getLeftMenuItems(): MenuItem[] { return this.leftMenuItems$.get(); } getRightMenuItems(): MenuItem[] { return this.rightMenuItems$.get(); } getAllMenuItems(): MenuItem[] { return this.allMenuItems$.get(); } setLeftMenuItems(items: MenuItem[]) { this.leftMenuItems$.set(items); } setRightMenuItems(items: MenuItem[]) { this.rightMenuItems$.set(items); } showCommandPaletteEmitter = new Emitter<[boolean]>(); }