Call initialize in CustomElement's connectedCallback method

This commit is contained in:
JC Brand 2021-09-23 13:57:46 +02:00
parent 7f2ab05f97
commit 48f37aa1c0
16 changed files with 29 additions and 59 deletions

View File

@ -3,6 +3,7 @@ const path = require('path');
module.exports = function(config) { module.exports = function(config) {
config.set({ config.set({
// base path that will be used to resolve all patterns (eg. files, exclude) // base path that will be used to resolve all patterns (eg. files, exclude)
basePath: '', basePath: '',
frameworks: ['jasmine'], frameworks: ['jasmine'],

View File

@ -14,11 +14,6 @@ import { _converse, api } from '@converse/headless/core';
export default class ChatView extends BaseChatView { export default class ChatView extends BaseChatView {
length = 200 length = 200
connectedCallback () {
super.connectedCallback();
this.initialize();
}
async initialize() { async initialize() {
_converse.chatboxviews.add(this.jid, this); _converse.chatboxviews.add(this.jid, this);
this.model = _converse.chatboxes.get(this.jid); this.model = _converse.chatboxes.get(this.jid);

View File

@ -9,11 +9,6 @@ import './styles/chat-head.scss';
export default class ChatHeading extends CustomElement { export default class ChatHeading extends CustomElement {
connectedCallback () {
super.connectedCallback();
this.initialize();
}
initialize () { initialize () {
this.model = _converse.chatboxes.get(this.getAttribute('jid')); this.model = _converse.chatboxes.get(this.getAttribute('jid'));
this.listenTo(this.model, 'change:status', this.requestUpdate); this.listenTo(this.model, 'change:status', this.requestUpdate);

View File

@ -5,11 +5,6 @@ import { _converse, api } from '@converse/headless/core';
class HeadlinesView extends BaseChatView { class HeadlinesView extends BaseChatView {
connectedCallback () {
super.connectedCallback();
this.initialize();
}
async initialize() { async initialize() {
_converse.chatboxviews.add(this.jid, this); _converse.chatboxviews.add(this.jid, this);

View File

@ -7,11 +7,6 @@ import { initStorage } from '@converse/headless/utils/storage.js';
export default class MinimizedChats extends CustomElement { export default class MinimizedChats extends CustomElement {
constructor () {
super();
this.initialize();
}
async initialize () { async initialize () {
this.model = _converse.chatboxes; this.model = _converse.chatboxes;
await this.initToggle(); await this.initToggle();

View File

@ -17,11 +17,6 @@ export default class MUCChatArea extends CustomElement {
} }
} }
connectedCallback () {
super.connectedCallback();
this.initialize();
}
async initialize () { async initialize () {
this.model = await api.rooms.get(this.jid); this.model = await api.rooms.get(this.jid);
this.listenTo(this.model, 'change:show_help_messages', () => this.requestUpdate()); this.listenTo(this.model, 'change:show_help_messages', () => this.requestUpdate());

View File

@ -38,11 +38,6 @@ export default class ModeratorTools extends CustomElement {
this.roles_filter = ''; this.roles_filter = '';
} }
connectedCallback () {
super.connectedCallback();
this.initialize();
}
updated (changed) { updated (changed) {
changed.has('role') && this.onSearchRoleChange(); changed.has('role') && this.onSearchRoleChange();
changed.has('affiliation') && this.onSearchAffiliationChange(); changed.has('affiliation') && this.onSearchAffiliationChange();

View File

@ -7,11 +7,6 @@ export default class MUCView extends BaseChatView {
length = 300 length = 300
is_chatroom = true is_chatroom = true
connectedCallback () {
super.connectedCallback();
this.initialize();
}
async initialize () { async initialize () {
this.model = await api.rooms.get(this.jid); this.model = await api.rooms.get(this.jid);
_converse.chatboxviews.add(this.jid, this); _converse.chatboxviews.add(this.jid, this);

View File

@ -17,11 +17,6 @@ export const RosterFilter = Model.extend({
export class RosterFilterView extends CustomElement { export class RosterFilterView extends CustomElement {
constructor () {
super();
this.initialize();
}
initialize () { initialize () {
const model = new _converse.RosterFilter(); const model = new _converse.RosterFilter();
model.id = `_converse.rosterfilter-${_converse.bare_jid}`; model.id = `_converse.rosterfilter-${_converse.bare_jid}`;

View File

@ -11,11 +11,6 @@ import { _converse, api } from "@converse/headless/core";
*/ */
export default class RosterView extends CustomElement { export default class RosterView extends CustomElement {
constructor () {
super();
this.initialize();
}
async initialize () { async initialize () {
await api.waitUntil('rosterInitialized') await api.waitUntil('rosterInitialized')
this.listenTo(_converse, 'rosterContactsFetched', this.requestUpdate); this.listenTo(_converse, 'rosterContactsFetched', this.requestUpdate);

View File

@ -15,11 +15,6 @@ export default class ChatContent extends CustomElement {
} }
} }
connectedCallback () {
super.connectedCallback();
this.initialize();
}
disconnectedCallback () { disconnectedCallback () {
super.disconnectedCallback(); super.disconnectedCallback();
this.removeEventListener('scroll', markScrolled); this.removeEventListener('scroll', markScrolled);

View File

@ -2,6 +2,7 @@ import log from '@converse/headless/log';
import { CustomElement } from 'shared/components/element.js'; import { CustomElement } from 'shared/components/element.js';
import { __ } from 'i18n'; import { __ } from 'i18n';
import { _converse, api, converse } from '@converse/headless/core.js'; 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 { getMediaURLs } from '@converse/headless/shared/chat/utils.js';
import { html } from 'lit'; import { html } from 'lit';
import { isMediaURLDomainAllowed } from '@converse/headless/utils/url.js'; 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 () { render () {
return html`${until(this.renderActions(), '')}`; return html`${until(this.renderActions(), '')}`;
} }

View File

@ -3,6 +3,7 @@ import ImageModal from 'modals/image.js';
import renderRichText from 'shared/directives/rich-text.js'; import renderRichText from 'shared/directives/rich-text.js';
import { CustomElement } from 'shared/components/element.js'; import { CustomElement } from 'shared/components/element.js';
import { api } from "@converse/headless/core"; import { api } from "@converse/headless/core";
import { getAppSettings } from '@converse/headless/shared/settings/utils.js';
import './styles/message-body.scss'; 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 onImgClick (ev) { // eslint-disable-line class-methods-use-this
ev.preventDefault(); ev.preventDefault();
api.modal.create(ImageModal, {'src': ev.target.src}, ev).show(ev); api.modal.create(ImageModal, {'src': ev.target.src}, ev).show(ev);

View File

@ -30,11 +30,6 @@ export default class Message extends CustomElement {
} }
} }
connectedCallback () {
super.connectedCallback();
this.initialize();
}
async initialize () { async initialize () {
await this.setModels(); await this.setModels();
if (!this.model) { if (!this.model) {

View File

@ -14,6 +14,11 @@ export class CustomElement extends LitElement {
return this; return this;
} }
connectedCallback () {
super.connectedCallback();
this.initialize?.();
}
disconnectedCallback () { disconnectedCallback () {
super.disconnectedCallback(); super.disconnectedCallback();
this.stopListening(); this.stopListening();

View File

@ -6,7 +6,7 @@ import { html } from 'lit';
import './styles/gif.scss'; import './styles/gif.scss';
export default class ConverseGIF extends CustomElement { export default class ConverseGIFElement extends CustomElement {
static get properties () { static get properties () {
/** /**
* @typedef { Object } ConverseGIFComponentProperties * @typedef { Object } ConverseGIFComponentProperties
@ -33,7 +33,7 @@ export default class ConverseGIF extends CustomElement {
this.fallback = 'url'; this.fallback = 'url';
} }
initialize () { initGIF () {
const options = { const options = {
'autoplay': this.autoplay, 'autoplay': this.autoplay,
'loop': !this.noloop, 'loop': !this.noloop,
@ -46,7 +46,7 @@ export default class ConverseGIF extends CustomElement {
updated (changed) { updated (changed) {
if (!this.supergif || changed.has('src')) { if (!this.supergif || changed.has('src')) {
this.initialize(); this.initGIF();
return; return;
} }
if (changed.has('autoplay')) { 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);