Skip to content

Commit f593170

Browse files
committed
fix: hide preview container when previews: false
1 parent f33082f commit f593170

File tree

3 files changed

+19
-5
lines changed

3 files changed

+19
-5
lines changed

e2e/test/navigation.test.ts

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ const test = base.extend<{ menu: { navigate: (name: { from: string; to: string }
1111
}).toPass();
1212

1313
await page.getByRole('region', { name: 'Navigation' }).getByRole('link', { name: to }).click();
14+
15+
await expect(page.getByRole('heading', { level: 1, name: `Navigation test - ${to}` })).toBeVisible();
1416
}
1517

1618
await use({ navigate });
@@ -78,9 +80,14 @@ test('user should not see preview on lessons that disable it (#405)', async ({ p
7880

7981
await menu.navigate({ from: 'Layout change from', to: 'Layout change all off' });
8082

81-
// page should open
82-
await expect(page.getByRole('heading', { level: 1, name: 'Navigation test - Layout change all off' })).toBeVisible();
83-
8483
// preview should not be visible
8584
await expect(page.locator('iframe[title="Custom preview"]')).not.toBeVisible();
85+
86+
// navigate back and check preview is visible once again
87+
await menu.navigate({ from: 'Layout change all off', to: 'Layout change from' });
88+
89+
{
90+
const preview = page.frameLocator('[title="Custom preview"]');
91+
await expect(preview.getByText('Index page')).toBeVisible();
92+
}
8693
});

packages/astro/src/default/pages/[...slug].astro

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ meta.description ??= 'A TutorialKit interactive lesson';
2424

2525
<Layout title={title} meta={meta}>
2626
<PageLoadingIndicator />
27-
<div id="previews-container"></div>
27+
<div id="previews-container" style="display: none;"></div>
2828
<main class="max-w-full flex flex-col h-full overflow-hidden" data-swap-root>
2929
<TopBarWrapper logoLink={logoLink ?? '/'} openInStackBlitz={lesson.data.openInStackBlitz} />
3030
<MainContainer lesson={lesson} navList={navList} />

packages/react/src/Panels/PreviewPanel.tsx

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,14 @@ export const PreviewPanel = memo(
6262
useEffect(() => {
6363
// we update the iframes position at max fps if we have any
6464
if (hasPreviews) {
65-
return requestAnimationFrameLoop(onResize);
65+
const cancel = requestAnimationFrameLoop(onResize);
66+
67+
previewsContainer.style.display = 'block';
68+
69+
return () => {
70+
previewsContainer.style.display = 'none';
71+
cancel();
72+
};
6673
}
6774

6875
return undefined;

0 commit comments

Comments
 (0)