2
0

controlbox.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import tpl_spinner from "templates/spinner.js";
  2. import { _converse, api, converse } from "@converse/headless/core.js";
  3. import { html } from 'lit';
  4. const { Strophe } = converse.env;
  5. function whenNotConnected (o) {
  6. const connection_status = _converse.connfeedback.get('connection_status');
  7. console.log("connection_status");
  8. console.log(connection_status);
  9. if ([Strophe.Status.RECONNECTING, Strophe.Status.CONNECTING].includes(connection_status)) {
  10. return tpl_spinner();
  11. }
  12. if (o['active-form'] === 'register') {
  13. return html`<converse-register-panel></converse-register-panel>`;
  14. }
  15. return html`<converse-login-form id="converse-login-panel" class="controlbox-pane fade-in row no-gutters"></converse-login-form>}`;
  16. }
  17. export default (el) => {
  18. const o = el.model.toJSON();
  19. const sticky_controlbox = api.settings.get('sticky_controlbox');
  20. return html`
  21. <div class="flyout box-flyout">
  22. <converse-dragresize></converse-dragresize>
  23. <div class="chat-head controlbox-head">
  24. ${sticky_controlbox
  25. ? ''
  26. : html`
  27. <a class="chatbox-btn close-chatbox-button fa fa-times" @click=${(ev) => el.close(ev)}></a>
  28. `}
  29. </div>
  30. <div class="controlbox-panes">
  31. <div class="controlbox-pane">
  32. ${o.connected
  33. ? html`
  34. <converse-user-profile></converse-user-profile>
  35. <converse-headlines-panel class="controlbox-section"></converse-headlines-panel>
  36. <div id="chatrooms" class="controlbox-section">
  37. <converse-rooms-list></converse-rooms-list>
  38. <converse-bookmarks></converse-bookmarks>
  39. </div>
  40. ${ api.settings.get("authentication") === _converse.ANONYMOUS ? '' :
  41. html`<div id="converse-roster" class="controlbox-section"><converse-roster></converse-roster></div>`
  42. }`
  43. : whenNotConnected(o)
  44. }
  45. </div>
  46. </div>
  47. </div>`
  48. };