From b76154ec36af2a0110b1c89876efafbed816afb6 Mon Sep 17 00:00:00 2001 From: Joffrey JAFFEUX Date: Tue, 21 Nov 2017 15:48:56 +0100 Subject: [PATCH] minor refactoring of component-connector --- ...omponent_connector.js.es6 => component-connector.js.es6} | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) rename app/assets/javascripts/discourse/widgets/{component_connector.js.es6 => component-connector.js.es6} (74%) diff --git a/app/assets/javascripts/discourse/widgets/component_connector.js.es6 b/app/assets/javascripts/discourse/widgets/component-connector.js.es6 similarity index 74% rename from app/assets/javascripts/discourse/widgets/component_connector.js.es6 rename to app/assets/javascripts/discourse/widgets/component-connector.js.es6 index e603896883c..5f01effceb4 100644 --- a/app/assets/javascripts/discourse/widgets/component_connector.js.es6 +++ b/app/assets/javascripts/discourse/widgets/component-connector.js.es6 @@ -31,6 +31,10 @@ export default class ComponentConnector { } update(prev) { + // mutated external properties might not correctly update the underlying component + // in this case we can define trackedProperties, if different from previous + // state we will re-init the whole component, be careful when using this + // to not track a property which would be updated too often (on scroll for example) let shouldInit = false; this.trackedProperties.forEach(prop => { if (prev.opts[prop] !== this.opts[prop]) { @@ -38,7 +42,7 @@ export default class ComponentConnector { } }); - if (shouldInit === true) return this.init(); + if (shouldInit) return this.init(); return null; }