/ app / interfaces / menu-state-provider.js
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  }