From 37a136411bb98f51d15140d671b331b14e34221e Mon Sep 17 00:00:00 2001 From: Vincent de Vreede Date: Fri, 4 Oct 2024 19:57:29 +0200 Subject: [PATCH 1/2] Fix: Ensure active frame rerenders in composed Storybook --- code/core/src/manager/components/preview/FramesRenderer.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/core/src/manager/components/preview/FramesRenderer.tsx b/code/core/src/manager/components/preview/FramesRenderer.tsx index 40a42c3fbe98..f6c5b2549734 100644 --- a/code/core/src/manager/components/preview/FramesRenderer.tsx +++ b/code/core/src/manager/components/preview/FramesRenderer.tsx @@ -73,8 +73,8 @@ export const FramesRenderer: FC = ({ return ref.type === 'auto-inject' || ref.id === refId; }, {}); - if (!frames['storybook-preview-iframe']) { - frames['storybook-preview-iframe'] = getStoryHref(baseUrl, storyId, { + if (!frames[active]) { + frames[active] = getStoryHref(baseUrl, storyId, { ...queryParams, ...(version && { version }), viewMode, From 1ba3a46123f6de4055c7c255066fea485f7f748b Mon Sep 17 00:00:00 2001 From: Vincent de Vreede Date: Fri, 11 Oct 2024 16:20:28 +0200 Subject: [PATCH 2/2] Fix iframe URL update logic by adding query param check for existing frames --- code/core/src/manager/components/preview/FramesRenderer.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/core/src/manager/components/preview/FramesRenderer.tsx b/code/core/src/manager/components/preview/FramesRenderer.tsx index f6c5b2549734..1e4936240838 100644 --- a/code/core/src/manager/components/preview/FramesRenderer.tsx +++ b/code/core/src/manager/components/preview/FramesRenderer.tsx @@ -73,8 +73,8 @@ export const FramesRenderer: FC = ({ return ref.type === 'auto-inject' || ref.id === refId; }, {}); - if (!frames[active]) { - frames[active] = getStoryHref(baseUrl, storyId, { + if (!frames['storybook-preview-iframe']) { + frames['storybook-preview-iframe'] = getStoryHref(baseUrl, storyId, { ...queryParams, ...(version && { version }), viewMode, @@ -84,7 +84,7 @@ export const FramesRenderer: FC = ({ refsToLoad.forEach((ref) => { const id = `storybook-ref-${ref.id}`; const existingUrl = frames[id]?.split('/iframe.html')[0]; - if (!existingUrl || ref.url !== existingUrl) { + if (!existingUrl || ref.url !== existingUrl || !frames[id].includes(stringifiedQueryParams)) { const newUrl = `${ref.url}/iframe.html?id=${storyId}&viewMode=${viewMode}&refId=${ref.id}${stringifiedQueryParams}`; frames[id] = newUrl; }