From 6b7641bc2728ab13e29c56d7c3ef4632c38e9adf Mon Sep 17 00:00:00 2001 From: yash prajapati Date: Sun, 9 Nov 2025 18:06:40 +0530 Subject: [PATCH 1/2] fix(snack-player): downscope observer to .container and use querySelectorAll --- website/modules/snackPlayerInitializer.js | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/website/modules/snackPlayerInitializer.js b/website/modules/snackPlayerInitializer.js index 9570267a116..b4bdc331df0 100644 --- a/website/modules/snackPlayerInitializer.js +++ b/website/modules/snackPlayerInitializer.js @@ -65,8 +65,27 @@ export default (() => { }); }; + const setupSnackObserver = () => { + const targetContainer = + document.querySelector('.container') || document.body; + + const observer = new MutationObserver(() => { + const snacks = targetContainer?.querySelectorAll('.snack-player'); + if (snacks.length && window.ExpoSnack) { + updateSnacksTheme(); + window.ExpoSnack.initialize(); + } + }); + + observer.observe(targetContainer, { + childList: true, + subtree: true, + }); + }; + // Need to set the theme before the snack script (deferred) initialize updateSnacksTheme(); + setupSnackObserver(); setupThemeSynchronization(); return { From 944184145aa6639422c4a113895bce8eae89180d Mon Sep 17 00:00:00 2001 From: yash04577 Date: Wed, 12 Nov 2025 00:05:18 +0530 Subject: [PATCH 2/2] fix(snack-player): ensure Snack player always initialize properly --- website/modules/snackPlayerInitializer.js | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/website/modules/snackPlayerInitializer.js b/website/modules/snackPlayerInitializer.js index b4bdc331df0..37a30a9d980 100644 --- a/website/modules/snackPlayerInitializer.js +++ b/website/modules/snackPlayerInitializer.js @@ -66,18 +66,15 @@ export default (() => { }; const setupSnackObserver = () => { - const targetContainer = - document.querySelector('.container') || document.body; - const observer = new MutationObserver(() => { - const snacks = targetContainer?.querySelectorAll('.snack-player'); - if (snacks.length && window.ExpoSnack) { - updateSnacksTheme(); - window.ExpoSnack.initialize(); + const snacks = document.body.querySelectorAll('.snack-player'); + + if (snacks.length) { + initSnackPlayers(); } }); - observer.observe(targetContainer, { + observer.observe(document.querySelector('.container'), { childList: true, subtree: true, }); @@ -91,6 +88,7 @@ export default (() => { return { onRouteDidUpdate() { initSnackPlayers(); + setupSnackObserver(); setupTabPanelsMutationObservers(); }, };