Skip to content

Commit

Permalink
πŸ› Fix custom-element render issue with overlaying variable instances
Browse files Browse the repository at this point in the history
  • Loading branch information
skerit committed Feb 4, 2024
1 parent fd33e35 commit 1d95820
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 6 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
* Trigger `HePlaceholder` render when made & inserted in the DOM manually
* Improve printed error messages during rendering
* Actually update the `hawkejs.scene.exposed` values after receiving new data from the server
* Fix custom-element render issue with overlaying variable instances

## 2.3.15 (2023-11-27)

Expand Down
6 changes: 5 additions & 1 deletion lib/core/variables.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ const Variables = Fn.inherits('Hawkejs.Base', function Variables(renderer, varia
*
* @author Jelle De Loecker <[email protected]>
* @since 2.0.0
* @version 2.0.0
* @version 2.3.16
*
* @param {Mixed} value
* @param {Renderer} renderer
Expand All @@ -33,6 +33,10 @@ const Variables = Fn.inherits('Hawkejs.Base', function Variables(renderer, varia
*/
Variables.setStatic(function cast(value, renderer) {

if (!renderer) {
throw new Error('Unable to cast to Variables without renderer instance');
}

if (!value || typeof value != 'object') {
return new Variables(renderer);
}
Expand Down
11 changes: 6 additions & 5 deletions lib/element/custom_element.js
Original file line number Diff line number Diff line change
Expand Up @@ -951,16 +951,17 @@ function addTemplateRenderer(element_class) {
*
* @author Jelle De Loecker <[email protected]>
* @since 2.0.0
* @version 2.3.15
* @version 2.3.16
*
* @param {Boolean} re_render Is this a render done from outside a normal render?
*/
function renderCustomTemplate(re_render) {

var template = this.inner_template;
let template = this.inner_template,
has_prepare_logic = typeof this.prepareRenderVariables == 'function';

if (!template) {
return;
return this.prepareRenderVariables();
}

let that = this,
Expand All @@ -983,7 +984,7 @@ function renderCustomTemplate(re_render) {

Hawkejs.series(function getRenderVariables(next) {

if (!that.prepareRenderVariables) {
if (!has_prepare_logic) {
return next();
}

Expand Down Expand Up @@ -1020,7 +1021,7 @@ function renderCustomTemplate(re_render) {
}

if (that[Hawkejs.VARIABLES]) {
render_vars = that[Hawkejs.VARIABLES].overlay(render_vars);
render_vars = Hawkejs.Variables.cast(that[Hawkejs.VARIABLES], renderer).overlay(render_vars);
}

render_vars.self = that;
Expand Down

0 comments on commit 1d95820

Please sign in to comment.