index.js 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. /**
  2. * @copyright 2022, the Converse.js contributors
  3. * @license Mozilla Public License (MPLv2)
  4. */
  5. import { _converse, api, converse, log, constants } from '@converse/headless';
  6. import "shared/components/brand-heading.js";
  7. import "../chatview/index.js";
  8. import './loginform.js';
  9. import './navback.js';
  10. import ControlBox from './model.js';
  11. import ControlBoxToggle from './toggle.js';
  12. import ControlBoxView from './controlbox.js';
  13. import controlbox_api from './api.js';
  14. import { addControlBox, clearSession, disconnect, onChatBoxesFetched } from './utils.js';
  15. import './styles/_controlbox.scss';
  16. import './styles/controlbox-head.scss';
  17. const { CONTROLBOX_TYPE } = constants;
  18. converse.plugins.add('converse-controlbox', {
  19. /* Plugin dependencies are other plugins which might be
  20. * overridden or relied upon, and therefore need to be loaded before
  21. * this plugin.
  22. *
  23. * If the setting "strict_plugin_dependencies" is set to true,
  24. * an error will be raised if the plugin is not found. By default it's
  25. * false, which means these plugins are only loaded opportunistically.
  26. */
  27. dependencies: ['converse-modal', 'converse-chatboxes', 'converse-chat', 'converse-rosterview', 'converse-chatview'],
  28. enabled (_converse) {
  29. return !_converse.api.settings.get('singleton');
  30. },
  31. initialize () {
  32. api.settings.extend({
  33. allow_logout: true,
  34. allow_user_trust_override: true,
  35. default_domain: undefined,
  36. locked_domain: undefined,
  37. show_connection_url_input: false,
  38. show_controlbox_by_default: false,
  39. sticky_controlbox: false
  40. });
  41. api.promises.add('controlBoxInitialized', false);
  42. Object.assign(api, controlbox_api);
  43. const exports = { ControlBox, ControlBoxView, ControlBoxToggle };
  44. Object.assign(_converse, exports); // DEPRECATED
  45. Object.assign(_converse.exports, exports);
  46. api.chatboxes.registry.add(CONTROLBOX_TYPE, ControlBox);
  47. api.listen.on('chatBoxesFetched', onChatBoxesFetched);
  48. api.listen.on('clearSession', clearSession);
  49. api.listen.on('will-reconnect', disconnect);
  50. api.waitUntil('chatBoxViewsInitialized')
  51. .then(addControlBox)
  52. .catch(e => log.fatal(e));
  53. }
  54. });