From 48f37aa1c050d439e2e9da1729459e02d35b0ec0 Mon Sep 17 00:00:00 2001 From: JC Brand Date: Thu, 23 Sep 2021 13:57:46 +0200 Subject: [PATCH] Call `initialize` in CustomElement's `connectedCallback` method --- karma.conf.js | 1 + src/plugins/chatview/chat.js | 5 ----- src/plugins/chatview/heading.js | 5 ----- src/plugins/headlines-view/view.js | 5 ----- src/plugins/minimize/view.js | 5 ----- src/plugins/muc-views/chatarea.js | 5 ----- src/plugins/muc-views/modtools.js | 5 ----- src/plugins/muc-views/muc.js | 5 ----- src/plugins/rosterview/filterview.js | 5 ----- src/plugins/rosterview/rosterview.js | 5 ----- src/shared/chat/chat-content.js | 5 ----- src/shared/chat/message-actions.js | 10 ++++++++++ src/shared/chat/message-body.js | 9 +++++++++ src/shared/chat/message.js | 5 ----- src/shared/components/element.js | 5 +++++ src/shared/components/gif.js | 8 ++++---- 16 files changed, 29 insertions(+), 59 deletions(-) diff --git a/karma.conf.js b/karma.conf.js index b52605bf3..f8659fa4c 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -3,6 +3,7 @@ const path = require('path'); module.exports = function(config) { config.set({ + // base path that will be used to resolve all patterns (eg. files, exclude) basePath: '', frameworks: ['jasmine'], diff --git a/src/plugins/chatview/chat.js b/src/plugins/chatview/chat.js index 4e7c7daa3..e861d1346 100644 --- a/src/plugins/chatview/chat.js +++ b/src/plugins/chatview/chat.js @@ -14,11 +14,6 @@ import { _converse, api } from '@converse/headless/core'; export default class ChatView extends BaseChatView { length = 200 - connectedCallback () { - super.connectedCallback(); - this.initialize(); - } - async initialize() { _converse.chatboxviews.add(this.jid, this); this.model = _converse.chatboxes.get(this.jid); diff --git a/src/plugins/chatview/heading.js b/src/plugins/chatview/heading.js index 33ac2b833..6fd6025cd 100644 --- a/src/plugins/chatview/heading.js +++ b/src/plugins/chatview/heading.js @@ -9,11 +9,6 @@ import './styles/chat-head.scss'; export default class ChatHeading extends CustomElement { - connectedCallback () { - super.connectedCallback(); - this.initialize(); - } - initialize () { this.model = _converse.chatboxes.get(this.getAttribute('jid')); this.listenTo(this.model, 'change:status', this.requestUpdate); diff --git a/src/plugins/headlines-view/view.js b/src/plugins/headlines-view/view.js index 2e5d689f5..751660257 100644 --- a/src/plugins/headlines-view/view.js +++ b/src/plugins/headlines-view/view.js @@ -5,11 +5,6 @@ import { _converse, api } from '@converse/headless/core'; class HeadlinesView extends BaseChatView { - connectedCallback () { - super.connectedCallback(); - this.initialize(); - } - async initialize() { _converse.chatboxviews.add(this.jid, this); diff --git a/src/plugins/minimize/view.js b/src/plugins/minimize/view.js index 84c50b552..4fac70b8e 100644 --- a/src/plugins/minimize/view.js +++ b/src/plugins/minimize/view.js @@ -7,11 +7,6 @@ import { initStorage } from '@converse/headless/utils/storage.js'; export default class MinimizedChats extends CustomElement { - constructor () { - super(); - this.initialize(); - } - async initialize () { this.model = _converse.chatboxes; await this.initToggle(); diff --git a/src/plugins/muc-views/chatarea.js b/src/plugins/muc-views/chatarea.js index e5f788345..a64932fdf 100644 --- a/src/plugins/muc-views/chatarea.js +++ b/src/plugins/muc-views/chatarea.js @@ -17,11 +17,6 @@ export default class MUCChatArea extends CustomElement { } } - connectedCallback () { - super.connectedCallback(); - this.initialize(); - } - async initialize () { this.model = await api.rooms.get(this.jid); this.listenTo(this.model, 'change:show_help_messages', () => this.requestUpdate()); diff --git a/src/plugins/muc-views/modtools.js b/src/plugins/muc-views/modtools.js index c900ed098..1f24967b0 100644 --- a/src/plugins/muc-views/modtools.js +++ b/src/plugins/muc-views/modtools.js @@ -38,11 +38,6 @@ export default class ModeratorTools extends CustomElement { this.roles_filter = ''; } - connectedCallback () { - super.connectedCallback(); - this.initialize(); - } - updated (changed) { changed.has('role') && this.onSearchRoleChange(); changed.has('affiliation') && this.onSearchAffiliationChange(); diff --git a/src/plugins/muc-views/muc.js b/src/plugins/muc-views/muc.js index 50f5d1df4..2bd74bdb2 100644 --- a/src/plugins/muc-views/muc.js +++ b/src/plugins/muc-views/muc.js @@ -7,11 +7,6 @@ export default class MUCView extends BaseChatView { length = 300 is_chatroom = true - connectedCallback () { - super.connectedCallback(); - this.initialize(); - } - async initialize () { this.model = await api.rooms.get(this.jid); _converse.chatboxviews.add(this.jid, this); diff --git a/src/plugins/rosterview/filterview.js b/src/plugins/rosterview/filterview.js index 62ac04995..6cffc52f6 100644 --- a/src/plugins/rosterview/filterview.js +++ b/src/plugins/rosterview/filterview.js @@ -17,11 +17,6 @@ export const RosterFilter = Model.extend({ export class RosterFilterView extends CustomElement { - constructor () { - super(); - this.initialize(); - } - initialize () { const model = new _converse.RosterFilter(); model.id = `_converse.rosterfilter-${_converse.bare_jid}`; diff --git a/src/plugins/rosterview/rosterview.js b/src/plugins/rosterview/rosterview.js index e872133fa..1c1308f90 100644 --- a/src/plugins/rosterview/rosterview.js +++ b/src/plugins/rosterview/rosterview.js @@ -11,11 +11,6 @@ import { _converse, api } from "@converse/headless/core"; */ export default class RosterView extends CustomElement { - constructor () { - super(); - this.initialize(); - } - async initialize () { await api.waitUntil('rosterInitialized') this.listenTo(_converse, 'rosterContactsFetched', this.requestUpdate); diff --git a/src/shared/chat/chat-content.js b/src/shared/chat/chat-content.js index 32eec0402..27537c8b1 100644 --- a/src/shared/chat/chat-content.js +++ b/src/shared/chat/chat-content.js @@ -15,11 +15,6 @@ export default class ChatContent extends CustomElement { } } - connectedCallback () { - super.connectedCallback(); - this.initialize(); - } - disconnectedCallback () { super.disconnectedCallback(); this.removeEventListener('scroll', markScrolled); diff --git a/src/shared/chat/message-actions.js b/src/shared/chat/message-actions.js index fdff9187b..d2c963606 100644 --- a/src/shared/chat/message-actions.js +++ b/src/shared/chat/message-actions.js @@ -2,6 +2,7 @@ import log from '@converse/headless/log'; import { CustomElement } from 'shared/components/element.js'; import { __ } from 'i18n'; import { _converse, api, converse } from '@converse/headless/core.js'; +import { getAppSettings } from '@converse/headless/shared/settings/utils.js'; import { getMediaURLs } from '@converse/headless/shared/chat/utils.js'; import { html } from 'lit'; import { isMediaURLDomainAllowed } from '@converse/headless/utils/url.js'; @@ -22,6 +23,15 @@ class MessageActions extends CustomElement { }; } + initialize () { + const settings = getAppSettings(); + this.listenTo(settings, 'change:allowed_audio_domains', () => this.requestUpdate()); + this.listenTo(settings, 'change:allowed_image_domains', () => this.requestUpdate()); + this.listenTo(settings, 'change:allowed_video_domains', () => this.requestUpdate()); + this.listenTo(settings, 'change:render_media', () => this.requestUpdate()); + } + + render () { return html`${until(this.renderActions(), '')}`; } diff --git a/src/shared/chat/message-body.js b/src/shared/chat/message-body.js index 3145f97f8..562cb204e 100644 --- a/src/shared/chat/message-body.js +++ b/src/shared/chat/message-body.js @@ -3,6 +3,7 @@ import ImageModal from 'modals/image.js'; import renderRichText from 'shared/directives/rich-text.js'; import { CustomElement } from 'shared/components/element.js'; import { api } from "@converse/headless/core"; +import { getAppSettings } from '@converse/headless/shared/settings/utils.js'; import './styles/message-body.scss'; @@ -21,6 +22,14 @@ export default class MessageBody extends CustomElement { } } + initialize () { + const settings = getAppSettings(); + this.listenTo(settings, 'change:allowed_audio_domains', () => this.requestUpdate()); + this.listenTo(settings, 'change:allowed_image_domains', () => this.requestUpdate()); + this.listenTo(settings, 'change:allowed_video_domains', () => this.requestUpdate()); + this.listenTo(settings, 'change:render_media', () => this.requestUpdate()); + } + onImgClick (ev) { // eslint-disable-line class-methods-use-this ev.preventDefault(); api.modal.create(ImageModal, {'src': ev.target.src}, ev).show(ev); diff --git a/src/shared/chat/message.js b/src/shared/chat/message.js index 10b3e1d6f..885edf074 100644 --- a/src/shared/chat/message.js +++ b/src/shared/chat/message.js @@ -30,11 +30,6 @@ export default class Message extends CustomElement { } } - connectedCallback () { - super.connectedCallback(); - this.initialize(); - } - async initialize () { await this.setModels(); if (!this.model) { diff --git a/src/shared/components/element.js b/src/shared/components/element.js index 17ad1226f..10c3a3685 100644 --- a/src/shared/components/element.js +++ b/src/shared/components/element.js @@ -14,6 +14,11 @@ export class CustomElement extends LitElement { return this; } + connectedCallback () { + super.connectedCallback(); + this.initialize?.(); + } + disconnectedCallback () { super.disconnectedCallback(); this.stopListening(); diff --git a/src/shared/components/gif.js b/src/shared/components/gif.js index 45817ebb7..e9dee5474 100644 --- a/src/shared/components/gif.js +++ b/src/shared/components/gif.js @@ -6,7 +6,7 @@ import { html } from 'lit'; import './styles/gif.scss'; -export default class ConverseGIF extends CustomElement { +export default class ConverseGIFElement extends CustomElement { static get properties () { /** * @typedef { Object } ConverseGIFComponentProperties @@ -33,7 +33,7 @@ export default class ConverseGIF extends CustomElement { this.fallback = 'url'; } - initialize () { + initGIF () { const options = { 'autoplay': this.autoplay, 'loop': !this.noloop, @@ -46,7 +46,7 @@ export default class ConverseGIF extends CustomElement { updated (changed) { if (!this.supergif || changed.has('src')) { - this.initialize(); + this.initGIF(); return; } if (changed.has('autoplay')) { @@ -100,4 +100,4 @@ export default class ConverseGIF extends CustomElement { } } -api.elements.define('converse-gif', ConverseGIF); +api.elements.define('converse-gif', ConverseGIFElement);