From 4f38dc92d985d97688b65930e331d39d813ee349 Mon Sep 17 00:00:00 2001 From: Thomas Weber Date: Sat, 10 Apr 2021 01:37:55 -0500 Subject: [PATCH] Reset scratch class cache when new stylesheets are added to For example, when scratch-paint loads lazily --- src/addons/api.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/addons/api.js b/src/addons/api.js index f5ab97d83..3308574cc 100644 --- a/src/addons/api.js +++ b/src/addons/api.js @@ -64,6 +64,20 @@ const getScratchClassNames = () => { .filter(e => e) .flat(); _scratchClassNames = [...new Set(classes)]; + const observer = new MutationObserver(mutationList => { + for (const mutation of mutationList) { + for (const node of mutation.addedNodes) { + if (node.tagName === 'STYLE') { + _scratchClassNames = null; + observer.disconnect(); + return; + } + } + } + }); + observer.observe(document.head, { + childList: true + }); return _scratchClassNames; };