From 648246b85c74967797e8dea31252b57d26a2fd93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ji=C5=99=C3=AD=20Pudil?= Date: Tue, 21 Nov 2023 15:32:25 +0100 Subject: [PATCH] ScriptLoader: only execute scripts from actually updated snippets (on snippet's afterUpdate) --- src/core/ScriptLoader.ts | 77 +++++++++++++++++++++----------------- tests/Naja.ScriptLoader.js | 14 +++++-- 2 files changed, 54 insertions(+), 37 deletions(-) diff --git a/src/core/ScriptLoader.ts b/src/core/ScriptLoader.ts index 62ded31..3027793 100644 --- a/src/core/ScriptLoader.ts +++ b/src/core/ScriptLoader.ts @@ -15,51 +15,60 @@ export class ScriptLoader { }); }); - naja.addEventListener('success', (event) => { - const {payload} = event.detail; - if (payload.snippets) { - this.loadScripts(payload.snippets); - } + naja.snippetHandler.addEventListener('afterUpdate', (event) => { + const {content} = event.detail; + this.loadScripts(content); }); }); } - public loadScripts(snippets: Record): void { - Object.keys(snippets).forEach((id) => { - const content = snippets[id]; - if ( ! /