toggle.js 820 B

123456789101112131415161718192021222324252627
  1. import tpl_controlbox_toggle from "./templates/toggle.js";
  2. import { CustomElement } from 'components/element.js';
  3. import { _converse, api } from "@converse/headless/core";
  4. import { showControlBox } from './utils.js';
  5. class ControlBoxToggle extends CustomElement {
  6. async connectedCallback () {
  7. super.connectedCallback();
  8. await api.waitUntil('initialized')
  9. this.model = _converse.chatboxes.get('controlbox');
  10. this.listenTo(this.model, 'change:closed', () => this.requestUpdate());
  11. this.requestUpdate();
  12. }
  13. render () {
  14. return tpl_controlbox_toggle({
  15. 'onClick': showControlBox,
  16. 'hide': !this.model?.get('closed')
  17. });
  18. }
  19. }
  20. api.elements.define('converse-controlbox-toggle', ControlBoxToggle);
  21. export default ControlBoxToggle;