In converse-muc-chatarea, use API to get room

and handle asynchronicity.
This commit is contained in:
JC Brand 2021-06-18 11:56:35 +02:00
parent be8a47b672
commit 8de6e78729
2 changed files with 18 additions and 14 deletions

View File

@ -19,7 +19,11 @@ export default class MUCChatArea extends CustomElement {
connectedCallback () {
super.connectedCallback();
this.model = _converse.chatboxes.get(this.jid);
this.initialize();
}
async initialize () {
this.model = await api.rooms.get(this.jid);
this.listenTo(this.model, 'change:show_help_messages', () => this.requestUpdate());
this.listenTo(this.model, 'change:hidden_occupants', () => this.requestUpdate());
this.listenTo(this.model.session, 'change:connection_status', () => this.requestUpdate());
@ -27,19 +31,18 @@ export default class MUCChatArea extends CustomElement {
// Bind so that we can pass it to addEventListener and removeEventListener
this.onMouseMove = this._onMouseMove.bind(this);
this.onMouseUp = this._onMouseUp.bind(this);
this.requestUpdate(); // Make sure we render again after the model has been attached
}
render () {
return tpl_muc_chatarea({
'help_messages': this.getHelpMessages(),
'getHelpMessages': () => this.getHelpMessages(),
'jid': this.jid,
'model': this.model,
'occupants': this.model.occupants,
'occupants_width': this.model.get('occupants_width'),
'onMousedown': ev => this.onMousedown(ev),
'show_help_messages': this.model.get('show_help_messages'),
'show_send_button': _converse.show_send_button,
'show_sidebar': this.shouldShowSidebar(),
'shouldShowSidebar': () => this.shouldShowSidebar(),
'type': this.type,
});
}

View File

@ -12,11 +12,11 @@ export default (o) => html`
class="chat-content__messages"
jid="${o.jid}"></converse-chat-content>
${o.show_help_messages ? html`<div class="chat-content__help">
${(o.model?.get('show_help_messages')) ?
html`<div class="chat-content__help">
<converse-chat-help
.model=${o.model}
.messages=${o.help_messages}
?hidden=${!o.show_help_messages}
.messages=${o.getHelpMessages()}
type="info"
chat_type="${_converse.CHATROOMS_TYPE}"
></converse-chat-help></div>` : '' }
@ -24,9 +24,10 @@ export default (o) => html`
<converse-muc-bottom-panel jid="${o.jid}" class="bottom-panel"></converse-muc-bottom-panel>
</div>
<div class="disconnect-container hidden"></div>
<converse-muc-sidebar
class="occupants col-md-3 col-4 ${o.show_sidebar ? '' : 'hidden' }"
style="flex: 0 0 ${o.occupants_width}px"
jid=${o.jid}
@mousedown=${o.onMousedown}></converse-muc-sidebar>
${o.model ? html`
<converse-muc-sidebar
class="occupants col-md-3 col-4 ${o.shouldShowSidebar() ? '' : 'hidden' }"
style="flex: 0 0 ${o.model.get('occupants_width')}px"
jid=${o.jid}
@mousedown=${o.onMousedown}></converse-muc-sidebar>` : '' }
`;