Skip to content

Commit ad38969

Browse files
Remove set_iframe_src and loaded to prevent app-hiding during reload
1 parent 00892b4 commit ad38969

File tree

1 file changed

+7
-28
lines changed

1 file changed

+7
-28
lines changed

src/routes/tutorial/[slug]/Output.svelte

Lines changed: 7 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -57,19 +57,14 @@
5757
}
5858
});
5959
60-
function on_iframe_load() {
61-
iframe.classList.add('loaded');
62-
}
6360
function destroy() {
64-
iframe.removeEventListener('load', on_iframe_load);
6561
unsub();
6662
if (adapter) {
6763
adapter.destroy();
6864
}
6965
}
7066
7167
document.addEventListener('pagehide', destroy);
72-
iframe.addEventListener('load', on_iframe_load);
7368
return destroy;
7469
});
7570
@@ -99,7 +94,7 @@
9994
adapter = _adapter;
10095
await _adapter.init;
10196
102-
set_iframe_src(adapter.base + path);
97+
iframe.src = adapter.base + path;
10398
}
10499
105100
await new Promise((fulfil, reject) => {
@@ -118,7 +113,7 @@
118113
if (!called) {
119114
// Updating the iframe too soon sometimes results in a blank screen,
120115
// so we try again after a short delay if we haven't heard back
121-
set_iframe_src(adapter.base + path);
116+
iframe.src = adapter.base + path;
122117
}
123118
}, 5000);
124119
@@ -131,7 +126,7 @@
131126
132127
if (reload_iframe) {
133128
await new Promise((fulfil) => setTimeout(fulfil, 200));
134-
set_iframe_src(adapter.base + path);
129+
iframe.src = adapter.base + path;
135130
}
136131
137132
return adapter;
@@ -142,7 +137,7 @@
142137
function schedule_iframe_reload() {
143138
clearTimeout(reload_timeout);
144139
reload_timeout = setTimeout(() => {
145-
set_iframe_src(adapter.base + path);
140+
iframe.src = adapter.base + path;
146141
}, 1000);
147142
}
148143
@@ -172,31 +167,19 @@
172167
173168
// we lost contact, refresh the page
174169
loading = true;
175-
set_iframe_src(adapter.base + path);
170+
iframe.src = adapter.base + path;
176171
loading = false;
177172
}, 1000);
178173
} else if (e.data.type === 'ping-pause') {
179174
clearTimeout(timeout);
180175
}
181176
}
182177
183-
/** @param {string} src */
184-
function set_iframe_src(src) {
185-
// removing the iframe from the document allows us to
186-
// change the src without adding a history entry, which
187-
// would make back/forward traversal very annoying
188-
const parentNode = /** @type {HTMLElement} */ (iframe.parentNode);
189-
iframe.classList.remove('loaded');
190-
parentNode?.removeChild(iframe);
191-
iframe.src = src;
192-
parentNode?.appendChild(iframe);
193-
}
194-
195178
/** @param {string} path */
196179
function route_to(path) {
197180
const url = new URL(path, adapter.base);
198181
path = url.pathname + url.search + url.hash;
199-
set_iframe_src(adapter.base + path);
182+
iframe.src = adapter.base + path;
200183
}
201184
202185
/** @param {string | null} new_path */
@@ -234,7 +217,7 @@
234217
{path}
235218
{loading}
236219
on:refresh={() => {
237-
set_iframe_src(adapter.base + path);
220+
iframe.src = adapter.base + path;
238221
}}
239222
on:change={(e) => nav_to(e.detail.value)}
240223
on:back={go_bwd}
@@ -272,8 +255,4 @@
272255
border: none;
273256
background: var(--sk-back-2);
274257
}
275-
276-
iframe:not(.loaded) {
277-
display: none;
278-
}
279258
</style>

0 commit comments

Comments
 (0)