menu-state-provider.js
1 import { checkMenuVisibility } from '../utils/ui/index.js'; 2 3 export class MenuStateProvider { 4 isMenuOpen() { 5 throw new Error('MenuStateProvider.isMenuOpen() must be implemented by subclass'); 6 } 7 8 getMenuManager() { 9 throw new Error('MenuStateProvider.getMenuManager() must be implemented by subclass'); 10 } 11 } 12 13 export class UIManagerMenuStateProvider extends MenuStateProvider { 14 constructor(uiManager, visibleClassName) { 15 super(); 16 this.uiManager = uiManager; 17 this.visibleClassName = visibleClassName; 18 } 19 20 isMenuOpen() { 21 const leftMenu = this.uiManager.get('leftMenuElement'); 22 const rightMenu = this.uiManager.get('rightMenuElement'); 23 24 return ( 25 checkMenuVisibility(leftMenu, this.visibleClassName) || 26 checkMenuVisibility(rightMenu, this.visibleClassName) 27 ); 28 } 29 30 async getMenuManager() { 31 return this.uiManager.getMenuManager(); 32 } 33 }