From 2382da5c9d766eedfe7b7fcecdb68913103acc4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B2an?= Date: Mon, 2 Sep 2024 14:44:21 +0000 Subject: [PATCH 1/6] feat(react): add button to reload a preview --- docs/tutorialkit.dev/package.json | 2 +- e2e/package.json | 1 + e2e/src/components/ButtonWriteToFile.tsx | 27 +++++++++++++++++++ .../tests/preview/single/_files/index.html | 1 + .../tutorial/tests/preview/single/content.md | 8 ------ .../tutorial/tests/preview/single/content.mdx | 12 +++++++++ e2e/src/templates/default/index.mjs | 3 ++- e2e/test/preview.test.ts | 16 +++++++++++ e2e/tsconfig.json | 13 +++++++++ packages/astro/package.json | 2 +- .../utils/content/default-localization.ts | 1 + packages/react/package.json | 2 +- packages/react/src/Panels/PreviewPanel.tsx | 15 ++++++++++- packages/runtime/package.json | 2 +- packages/test-utils/package.json | 2 +- packages/types/src/schemas/i18n.ts | 10 +++++++ pnpm-lock.yaml | 27 ++++++++++--------- 17 files changed, 117 insertions(+), 27 deletions(-) create mode 100644 e2e/src/components/ButtonWriteToFile.tsx create mode 100644 e2e/src/content/tutorial/tests/preview/single/_files/index.html delete mode 100644 e2e/src/content/tutorial/tests/preview/single/content.md create mode 100644 e2e/src/content/tutorial/tests/preview/single/content.mdx create mode 100644 e2e/tsconfig.json diff --git a/docs/tutorialkit.dev/package.json b/docs/tutorialkit.dev/package.json index 328274998..ec952c48f 100644 --- a/docs/tutorialkit.dev/package.json +++ b/docs/tutorialkit.dev/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@tutorialkit/react": "workspace:*", - "@webcontainer/api": "1.2.0", + "@webcontainer/api": "1.2.3", "classnames": "^2.5.1", "react": "^18.3.1", "react-dom": "^18.3.1" diff --git a/e2e/package.json b/e2e/package.json index 0e5e3a817..b94f67b62 100644 --- a/e2e/package.json +++ b/e2e/package.json @@ -18,6 +18,7 @@ "@tutorialkit/runtime": "workspace:*", "@tutorialkit/theme": "workspace:*", "@tutorialkit/types": "workspace:*", + "@types/react": "^18.3.3", "@types/node": "^22.2.0", "@unocss/reset": "^0.59.4", "@unocss/transformer-directives": "^0.62.0", diff --git a/e2e/src/components/ButtonWriteToFile.tsx b/e2e/src/components/ButtonWriteToFile.tsx new file mode 100644 index 000000000..5262ce893 --- /dev/null +++ b/e2e/src/components/ButtonWriteToFile.tsx @@ -0,0 +1,27 @@ +import tutorialStore from 'tutorialkit:store'; + +interface Props { + filePath: string; + newContent: string; + testId?: string; +} + +export function ButtonWriteToFile({ filePath, newContent, testId = 'write-to-file' }: Props) { + async function writeFile() { + await new Promise((resolve) => { + tutorialStore.lessonFullyLoaded.subscribe((value) => { + if (value) { + resolve(); + } + }); + }); + + tutorialStore.updateFile(filePath, newContent); + } + + return ( + + ); +} diff --git a/e2e/src/content/tutorial/tests/preview/single/_files/index.html b/e2e/src/content/tutorial/tests/preview/single/_files/index.html new file mode 100644 index 000000000..896c9cfcc --- /dev/null +++ b/e2e/src/content/tutorial/tests/preview/single/_files/index.html @@ -0,0 +1 @@ +Index page diff --git a/e2e/src/content/tutorial/tests/preview/single/content.md b/e2e/src/content/tutorial/tests/preview/single/content.md deleted file mode 100644 index 387761f49..000000000 --- a/e2e/src/content/tutorial/tests/preview/single/content.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -type: lesson -title: Single -previews: - - [8000, "Node Server"] ---- - -# Preview test - Single diff --git a/e2e/src/content/tutorial/tests/preview/single/content.mdx b/e2e/src/content/tutorial/tests/preview/single/content.mdx new file mode 100644 index 000000000..3b0de6bc8 --- /dev/null +++ b/e2e/src/content/tutorial/tests/preview/single/content.mdx @@ -0,0 +1,12 @@ +--- +type: lesson +title: Single +previews: + - [8000, "Node Server"] +--- + +import { ButtonWriteToFile } from '@components/ButtonWriteToFile'; + +# Preview test - Single + + diff --git a/e2e/src/templates/default/index.mjs b/e2e/src/templates/default/index.mjs index 148d1ae20..dfa0084df 100644 --- a/e2e/src/templates/default/index.mjs +++ b/e2e/src/templates/default/index.mjs @@ -1,9 +1,10 @@ import http from 'node:http'; +import fs from 'node:fs'; const server = http.createServer((req, res) => { if (req.url === '/' || req.url === '/index.html') { res.writeHead(200, { 'Content-Type': 'text/html' }); - res.end('Index page'); + res.end(fs.readFileSync('./index.html', 'utf-8')); return; } diff --git a/e2e/test/preview.test.ts b/e2e/test/preview.test.ts index 7ebe4b841..8b1320361 100644 --- a/e2e/test/preview.test.ts +++ b/e2e/test/preview.test.ts @@ -13,6 +13,22 @@ test('user can see single preview tab', async ({ page }) => { await expect(preview.getByText('Index page')).toBeVisible(); }); +test('user can reload the page', async ({ page }) => { + await page.goto(`${BASE_URL}/single`); + + const preview = page.frameLocator('[title="Node Server"]'); + + await expect(preview.getByText('Index page')).toBeVisible(); + + await page.getByTestId('write-to-file').click(); + + await expect(preview.getByText('Index page')).toBeVisible(); + + await page.getByTitle('Reload Preview').click(); + + await expect(preview.getByText('New content')).toBeVisible(); +}); + test('user can see multiple preview tabs', async ({ page }) => { await page.goto(`${BASE_URL}/multiple`); diff --git a/e2e/tsconfig.json b/e2e/tsconfig.json new file mode 100644 index 000000000..272d33e8c --- /dev/null +++ b/e2e/tsconfig.json @@ -0,0 +1,13 @@ +{ + "extends": "astro/tsconfigs/strict", + "compilerOptions": { + "jsx": "react-jsx", + "baseUrl": "./", + "jsxImportSource": "react", + "paths": { + "@*": ["src/*"] + } + }, + "include": ["src", "./*.ts"], + "exclude": ["node_modules", "dist"] +} diff --git a/packages/astro/package.json b/packages/astro/package.json index c2f395a5c..fe207f2f3 100644 --- a/packages/astro/package.json +++ b/packages/astro/package.json @@ -43,7 +43,7 @@ "@tutorialkit/types": "workspace:*", "@types/react": "^18.3.3", "@unocss/reset": "^0.62.2", - "@webcontainer/api": "1.2.0", + "@webcontainer/api": "1.2.3", "astro": "^4.15.0", "astro-expressive-code": "^0.35.3", "chokidar": "3.6.0", diff --git a/packages/astro/src/default/utils/content/default-localization.ts b/packages/astro/src/default/utils/content/default-localization.ts index 6f8171826..427a0f8de 100644 --- a/packages/astro/src/default/utils/content/default-localization.ts +++ b/packages/astro/src/default/utils/content/default-localization.ts @@ -9,6 +9,7 @@ export const DEFAULT_LOCALIZATION = { filesTitleText: 'Files', prepareEnvironmentTitleText: 'Preparing Environment', defaultPreviewTitleText: 'Preview', + reloadPreviewTitle: 'Reload Preview', toggleTerminalButtonText: 'Toggle Terminal', solveButtonText: 'Solve', resetButtonText: 'Reset', diff --git a/packages/react/package.json b/packages/react/package.json index 71d408f6d..a616267d8 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -77,7 +77,7 @@ "@replit/codemirror-lang-svelte": "^6.0.0", "@tutorialkit/runtime": "workspace:*", "@tutorialkit/theme": "workspace:*", - "@webcontainer/api": "1.2.0", + "@webcontainer/api": "1.2.3", "@xterm/addon-fit": "^0.10.0", "@xterm/addon-web-links": "^0.11.0", "@xterm/xterm": "^5.5.0", diff --git a/packages/react/src/Panels/PreviewPanel.tsx b/packages/react/src/Panels/PreviewPanel.tsx index 11e7b73e7..4c4b01b9c 100644 --- a/packages/react/src/Panels/PreviewPanel.tsx +++ b/packages/react/src/Panels/PreviewPanel.tsx @@ -1,6 +1,7 @@ import { useStore } from '@nanostores/react'; import type { PreviewInfo, TutorialStore } from '@tutorialkit/runtime'; import type { I18n } from '@tutorialkit/types'; +import { reloadPreview } from '@webcontainer/api/utils'; import { createElement, forwardRef, memo, useCallback, useEffect, useImperativeHandle, useRef } from 'react'; import { Panel, PanelGroup, PanelResizeHandle } from 'react-resizable-panels'; import { BootScreen } from '../BootScreen.js'; @@ -166,6 +167,12 @@ function Preview({ preview, iframe, previewCount, first, last, toggleTerminal, i } }, [preview.url, iframe.ref]); + function reload() { + if (iframe.ref) { + reloadPreview(iframe.ref); + } + } + return (
-
+ {previewTitle(preview, previewCount, i18n)}
{last && ( diff --git a/packages/runtime/package.json b/packages/runtime/package.json index fc254d9cf..da6334537 100644 --- a/packages/runtime/package.json +++ b/packages/runtime/package.json @@ -34,7 +34,7 @@ }, "dependencies": { "@tutorialkit/types": "workspace:*", - "@webcontainer/api": "1.2.0", + "@webcontainer/api": "1.2.3", "nanostores": "^0.10.3" }, "devDependencies": { diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index a180c23fb..bdef5c59e 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -5,7 +5,7 @@ "type": "module", "private": true, "devDependencies": { - "@webcontainer/api": "1.2.0", + "@webcontainer/api": "1.2.3", "typescript": "^5.4.5", "vitest": "^1.6.0" } diff --git a/packages/types/src/schemas/i18n.ts b/packages/types/src/schemas/i18n.ts index e1c386a15..b4bb59c43 100644 --- a/packages/types/src/schemas/i18n.ts +++ b/packages/types/src/schemas/i18n.ts @@ -66,6 +66,16 @@ export const i18nSchema = z.object({ */ defaultPreviewTitleText: z.string().optional().describe('Text shown on top of the preview section.'), + /** + * Title or tooltip shown when hovering the reload icon for a preview. + * + * @default 'Reload Preview' + */ + reloadPreviewTitle: z + .string() + .optional() + .describe('Title or tooltip shown when hovering the reload icon for a preview'), + /** * Text for the toggle terminal button. * diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bdeb4a794..7b109e843 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -91,8 +91,8 @@ importers: specifier: workspace:* version: link:../../packages/react '@webcontainer/api': - specifier: 1.2.0 - version: 1.2.0 + specifier: 1.2.3 + version: 1.2.3 classnames: specifier: ^2.5.1 version: 2.5.1 @@ -178,6 +178,9 @@ importers: '@types/node': specifier: ^22.2.0 version: 22.4.2 + '@types/react': + specifier: ^18.3.3 + version: 18.3.3 '@unocss/reset': specifier: ^0.59.4 version: 0.59.4 @@ -312,8 +315,8 @@ importers: specifier: ^0.62.2 version: 0.62.3 '@webcontainer/api': - specifier: 1.2.0 - version: 1.2.0 + specifier: 1.2.3 + version: 1.2.3 astro: specifier: ^4.15.0 version: 4.15.0(@types/node@22.4.2)(typescript@5.5.3) @@ -540,8 +543,8 @@ importers: specifier: workspace:* version: link:../theme '@webcontainer/api': - specifier: 1.2.0 - version: 1.2.0 + specifier: 1.2.3 + version: 1.2.3 '@xterm/addon-fit': specifier: ^0.10.0 version: 0.10.0(@xterm/xterm@5.5.0) @@ -595,8 +598,8 @@ importers: specifier: workspace:* version: link:../types '@webcontainer/api': - specifier: 1.2.0 - version: 1.2.0 + specifier: 1.2.3 + version: 1.2.3 nanostores: specifier: ^0.10.3 version: 0.10.3 @@ -660,8 +663,8 @@ importers: packages/test-utils: devDependencies: '@webcontainer/api': - specifier: 1.2.0 - version: 1.2.0 + specifier: 1.2.3 + version: 1.2.3 typescript: specifier: ^5.4.5 version: 5.5.3 @@ -4038,8 +4041,8 @@ packages: resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==} dev: true - /@webcontainer/api@1.2.0: - resolution: {integrity: sha512-tzoKBd4lLdhHy5GHFpUkl+ndoSba8JqmB7x0ZQFnWfjbcbQOvKQfxA8MEMUYhgqjWHnbrWdAfnBEHz5f5lYG5A==} + /@webcontainer/api@1.2.3: + resolution: {integrity: sha512-vXwrSt2Q8bziYZu4HALKm4+zD8JXYOhiXitcJaT7btZS8v8AT8C4j1t7GBmNw8Za1a1FkjHOcxkz8MzGjA5Tkw==} /@xterm/addon-fit@0.10.0(@xterm/xterm@5.5.0): resolution: {integrity: sha512-UFYkDm4HUahf2lnEyHvio51TNGiLK66mqP2JoATy7hRZeXaGMRDr00JiSF7m63vR5WKATF605yEggJKsw0JpMQ==} From 27b0e9ebb3a6a732fe6b5d0770601f0faff15eb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B2an?= Date: Mon, 2 Sep 2024 16:44:03 +0100 Subject: [PATCH 2/6] Apply suggestions from code review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Ari Perkkiƶ --- e2e/test/preview.test.ts | 4 ++-- packages/types/src/schemas/i18n.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/e2e/test/preview.test.ts b/e2e/test/preview.test.ts index 8b1320361..5a6741405 100644 --- a/e2e/test/preview.test.ts +++ b/e2e/test/preview.test.ts @@ -13,7 +13,7 @@ test('user can see single preview tab', async ({ page }) => { await expect(preview.getByText('Index page')).toBeVisible(); }); -test('user can reload the page', async ({ page }) => { +test('user can reload a preview tab', async ({ page }) => { await page.goto(`${BASE_URL}/single`); const preview = page.frameLocator('[title="Node Server"]'); @@ -24,7 +24,7 @@ test('user can reload the page', async ({ page }) => { await expect(preview.getByText('Index page')).toBeVisible(); - await page.getByTitle('Reload Preview').click(); + await page.getByRole('button', { name: 'Reload Preview' }).click(); await expect(preview.getByText('New content')).toBeVisible(); }); diff --git a/packages/types/src/schemas/i18n.ts b/packages/types/src/schemas/i18n.ts index b4bb59c43..f28d38f99 100644 --- a/packages/types/src/schemas/i18n.ts +++ b/packages/types/src/schemas/i18n.ts @@ -67,7 +67,7 @@ export const i18nSchema = z.object({ defaultPreviewTitleText: z.string().optional().describe('Text shown on top of the preview section.'), /** - * Title or tooltip shown when hovering the reload icon for a preview. + * Title attribute for the preview reload button. * * @default 'Reload Preview' */ From 074a1ee5d0adb5295fe02b187bf10fae4ea727d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B2an?= Date: Mon, 2 Sep 2024 15:46:28 +0000 Subject: [PATCH 3/6] fix: update to non-broken version of the api --- docs/tutorialkit.dev/package.json | 2 +- packages/astro/package.json | 2 +- packages/react/package.json | 2 +- packages/runtime/package.json | 2 +- packages/test-utils/package.json | 2 +- pnpm-lock.yaml | 24 ++++++++++++------------ 6 files changed, 17 insertions(+), 17 deletions(-) diff --git a/docs/tutorialkit.dev/package.json b/docs/tutorialkit.dev/package.json index ec952c48f..7cefd8a60 100644 --- a/docs/tutorialkit.dev/package.json +++ b/docs/tutorialkit.dev/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@tutorialkit/react": "workspace:*", - "@webcontainer/api": "1.2.3", + "@webcontainer/api": "1.2.4", "classnames": "^2.5.1", "react": "^18.3.1", "react-dom": "^18.3.1" diff --git a/packages/astro/package.json b/packages/astro/package.json index fe207f2f3..b5aef391d 100644 --- a/packages/astro/package.json +++ b/packages/astro/package.json @@ -43,7 +43,7 @@ "@tutorialkit/types": "workspace:*", "@types/react": "^18.3.3", "@unocss/reset": "^0.62.2", - "@webcontainer/api": "1.2.3", + "@webcontainer/api": "1.2.4", "astro": "^4.15.0", "astro-expressive-code": "^0.35.3", "chokidar": "3.6.0", diff --git a/packages/react/package.json b/packages/react/package.json index a616267d8..d377daf1c 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -77,7 +77,7 @@ "@replit/codemirror-lang-svelte": "^6.0.0", "@tutorialkit/runtime": "workspace:*", "@tutorialkit/theme": "workspace:*", - "@webcontainer/api": "1.2.3", + "@webcontainer/api": "1.2.4", "@xterm/addon-fit": "^0.10.0", "@xterm/addon-web-links": "^0.11.0", "@xterm/xterm": "^5.5.0", diff --git a/packages/runtime/package.json b/packages/runtime/package.json index da6334537..60d582392 100644 --- a/packages/runtime/package.json +++ b/packages/runtime/package.json @@ -34,7 +34,7 @@ }, "dependencies": { "@tutorialkit/types": "workspace:*", - "@webcontainer/api": "1.2.3", + "@webcontainer/api": "1.2.4", "nanostores": "^0.10.3" }, "devDependencies": { diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index bdef5c59e..febb68ec8 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -5,7 +5,7 @@ "type": "module", "private": true, "devDependencies": { - "@webcontainer/api": "1.2.3", + "@webcontainer/api": "1.2.4", "typescript": "^5.4.5", "vitest": "^1.6.0" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7b109e843..f41856e7f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -91,8 +91,8 @@ importers: specifier: workspace:* version: link:../../packages/react '@webcontainer/api': - specifier: 1.2.3 - version: 1.2.3 + specifier: 1.2.4 + version: 1.2.4 classnames: specifier: ^2.5.1 version: 2.5.1 @@ -315,8 +315,8 @@ importers: specifier: ^0.62.2 version: 0.62.3 '@webcontainer/api': - specifier: 1.2.3 - version: 1.2.3 + specifier: 1.2.4 + version: 1.2.4 astro: specifier: ^4.15.0 version: 4.15.0(@types/node@22.4.2)(typescript@5.5.3) @@ -543,8 +543,8 @@ importers: specifier: workspace:* version: link:../theme '@webcontainer/api': - specifier: 1.2.3 - version: 1.2.3 + specifier: 1.2.4 + version: 1.2.4 '@xterm/addon-fit': specifier: ^0.10.0 version: 0.10.0(@xterm/xterm@5.5.0) @@ -598,8 +598,8 @@ importers: specifier: workspace:* version: link:../types '@webcontainer/api': - specifier: 1.2.3 - version: 1.2.3 + specifier: 1.2.4 + version: 1.2.4 nanostores: specifier: ^0.10.3 version: 0.10.3 @@ -663,8 +663,8 @@ importers: packages/test-utils: devDependencies: '@webcontainer/api': - specifier: 1.2.3 - version: 1.2.3 + specifier: 1.2.4 + version: 1.2.4 typescript: specifier: ^5.4.5 version: 5.5.3 @@ -4041,8 +4041,8 @@ packages: resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==} dev: true - /@webcontainer/api@1.2.3: - resolution: {integrity: sha512-vXwrSt2Q8bziYZu4HALKm4+zD8JXYOhiXitcJaT7btZS8v8AT8C4j1t7GBmNw8Za1a1FkjHOcxkz8MzGjA5Tkw==} + /@webcontainer/api@1.2.4: + resolution: {integrity: sha512-vV42eKuat5QGz7agFJupT5sZj0CHOj/gg6J3/HanvgOVETt7gupzR+iuVNHwudS3yuW+x78Ai7T6fwvV7uBThQ==} /@xterm/addon-fit@0.10.0(@xterm/xterm@5.5.0): resolution: {integrity: sha512-UFYkDm4HUahf2lnEyHvio51TNGiLK66mqP2JoATy7hRZeXaGMRDr00JiSF7m63vR5WKATF605yEggJKsw0JpMQ==} From a9bfae8db411288f430e0e53301ddfa9d056dc55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B2an?= Date: Mon, 2 Sep 2024 15:52:06 +0000 Subject: [PATCH 4/6] fix: code review --- e2e/src/content/tutorial/tests/preview/single/content.mdx | 3 ++- e2e/src/templates/default/index.mjs | 3 +-- packages/types/src/schemas/i18n.ts | 5 +---- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/e2e/src/content/tutorial/tests/preview/single/content.mdx b/e2e/src/content/tutorial/tests/preview/single/content.mdx index 3b0de6bc8..73c41eee3 100644 --- a/e2e/src/content/tutorial/tests/preview/single/content.mdx +++ b/e2e/src/content/tutorial/tests/preview/single/content.mdx @@ -1,6 +1,7 @@ --- type: lesson title: Single +template: file-server previews: - [8000, "Node Server"] --- @@ -9,4 +10,4 @@ import { ButtonWriteToFile } from '@components/ButtonWriteToFile'; # Preview test - Single - + diff --git a/e2e/src/templates/default/index.mjs b/e2e/src/templates/default/index.mjs index dfa0084df..148d1ae20 100644 --- a/e2e/src/templates/default/index.mjs +++ b/e2e/src/templates/default/index.mjs @@ -1,10 +1,9 @@ import http from 'node:http'; -import fs from 'node:fs'; const server = http.createServer((req, res) => { if (req.url === '/' || req.url === '/index.html') { res.writeHead(200, { 'Content-Type': 'text/html' }); - res.end(fs.readFileSync('./index.html', 'utf-8')); + res.end('Index page'); return; } diff --git a/packages/types/src/schemas/i18n.ts b/packages/types/src/schemas/i18n.ts index f28d38f99..69ebafa0a 100644 --- a/packages/types/src/schemas/i18n.ts +++ b/packages/types/src/schemas/i18n.ts @@ -71,10 +71,7 @@ export const i18nSchema = z.object({ * * @default 'Reload Preview' */ - reloadPreviewTitle: z - .string() - .optional() - .describe('Title or tooltip shown when hovering the reload icon for a preview'), + reloadPreviewTitle: z.string().optional().describe('Title attribute for the preview reload button.'), /** * Text for the toggle terminal button. From 3214499953dac94572076d7621b5a61962032701 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B2an?= Date: Mon, 2 Sep 2024 15:56:48 +0000 Subject: [PATCH 5/6] fix: code review --- packages/react/src/Panels/PreviewPanel.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react/src/Panels/PreviewPanel.tsx b/packages/react/src/Panels/PreviewPanel.tsx index c61612d8b..50bc0a6ab 100644 --- a/packages/react/src/Panels/PreviewPanel.tsx +++ b/packages/react/src/Panels/PreviewPanel.tsx @@ -181,7 +181,7 @@ function Preview({ preview, iframe, previewCount, first, last, toggleTerminal, i title={i18n.reloadPreviewTitle} className="panel-button rounded-full p-1.5 -my-1.5 -ml-2" > -
+
{previewTitle(preview, previewCount, i18n)}
From 6fb3d461f0437d65e9e55cd292ce2ab246eca1d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B2an?= Date: Mon, 2 Sep 2024 16:20:18 +0000 Subject: [PATCH 6/6] fix: update docs --- .../src/content/docs/reference/configuration.mdx | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/tutorialkit.dev/src/content/docs/reference/configuration.mdx b/docs/tutorialkit.dev/src/content/docs/reference/configuration.mdx index 2a37d85c0..36720ff3a 100644 --- a/docs/tutorialkit.dev/src/content/docs/reference/configuration.mdx +++ b/docs/tutorialkit.dev/src/content/docs/reference/configuration.mdx @@ -98,6 +98,13 @@ type I18nText = { */ defaultPreviewTitleText?: string, + /** + * Title attribute for the preview reload button. + * + * @default 'Reload Preview' + */ + reloadPreviewTitle?: string, + /** * Text for the toggle terminal button. *