From 3942c5776d9ff68eb68515a6e3cb0c69d05cbf57 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Wed, 14 Dec 2022 01:03:30 -0500 Subject: [PATCH 1/2] dont reset path - closes #118 --- src/routes/tutorial/[slug]/+page.svelte | 69 +++++++++++-------------- 1 file changed, 30 insertions(+), 39 deletions(-) diff --git a/src/routes/tutorial/[slug]/+page.svelte b/src/routes/tutorial/[slug]/+page.svelte index b73c99610..b6be0057b 100644 --- a/src/routes/tutorial/[slug]/+page.svelte +++ b/src/routes/tutorial/[slug]/+page.svelte @@ -107,7 +107,33 @@ return destroy; }); - afterNavigate(load_exercise); + afterNavigate(async () => { + try { + $files = Object.values(data.exercise.a); + $scope = data.exercise.scope; + path = data.exercise.path; + + selected.set( + /** @type {import('$lib/types').FileStub} */ ( + $files.find((stub) => stub.name === data.exercise.focus) + ) + ); + + clearTimeout(timeout); + loading = true; + + reset_complete_states(); + + await reset_adapter($files); + + loading = false; + initial = false; + } catch (e) { + loading = false; + error = /** @type {Error} */ (e); + console.error(e); + } + }); /** * Loads the adapter initially or resets it. This method can throw. @@ -155,40 +181,14 @@ }, 10000); }); - if (reload_iframe || iframe.src !== adapter.base + data.exercise.path) { + if (reload_iframe || iframe.src !== adapter.base + path) { await new Promise((fulfil) => setTimeout(fulfil, 200)); - set_iframe_src(adapter.base + data.exercise.path); + set_iframe_src(adapter.base + path); } return adapter; } - async function load_exercise() { - try { - $files = Object.values(data.exercise.a); - $scope = data.exercise.scope; - selected.set( - /** @type {import('$lib/types').FileStub} */ ( - $files.find((stub) => stub.name === data.exercise.focus) - ) - ); - - clearTimeout(timeout); - loading = true; - - reset_complete_states(); - - await reset_adapter($files); - - loading = false; - initial = false; - } catch (e) { - loading = false; - error = /** @type {Error} */ (e); - console.error(e); - } - } - /** * @param {CustomEvent} event */ @@ -418,16 +418,7 @@ {/if} {#if loading || error} - { - error = null; - load_exercise(); - }} - /> + {/if} From b813ccfed34f9f06fd55c492828715269c71cc4a Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Wed, 14 Dec 2022 01:08:05 -0500 Subject: [PATCH 2/2] oops --- src/routes/tutorial/[slug]/+page.svelte | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/routes/tutorial/[slug]/+page.svelte b/src/routes/tutorial/[slug]/+page.svelte index b6be0057b..e34a1f7ac 100644 --- a/src/routes/tutorial/[slug]/+page.svelte +++ b/src/routes/tutorial/[slug]/+page.svelte @@ -111,7 +111,6 @@ try { $files = Object.values(data.exercise.a); $scope = data.exercise.scope; - path = data.exercise.path; selected.set( /** @type {import('$lib/types').FileStub} */ ( @@ -126,6 +125,11 @@ await reset_adapter($files); + if (adapter && path !== data.exercise.path) { + path = data.exercise.path; + set_iframe_src(adapter.base + path); + } + loading = false; initial = false; } catch (e) { @@ -181,7 +185,7 @@ }, 10000); }); - if (reload_iframe || iframe.src !== adapter.base + path) { + if (reload_iframe) { await new Promise((fulfil) => setTimeout(fulfil, 200)); set_iframe_src(adapter.base + path); }