mirror of
https://github.com/kevin-DL/sapper.git
synced 2026-01-14 12:04:39 +00:00
set preloading: true when appropriate
This commit is contained in:
@@ -49,13 +49,20 @@ function select_route(url: URL): Target {
|
||||
}
|
||||
}
|
||||
|
||||
let first_load = true;
|
||||
let current_token: {};
|
||||
|
||||
function render(Page: ComponentConstructor, props: any, scroll: ScrollPosition, token: {}) {
|
||||
if (current_token !== token) return;
|
||||
|
||||
if (first_load) {
|
||||
const data = {
|
||||
Page,
|
||||
props,
|
||||
preloading: false
|
||||
};
|
||||
|
||||
if (component) {
|
||||
component.set(data);
|
||||
} else {
|
||||
// first load — remove SSR'd <head> contents
|
||||
const start = document.querySelector('#sapper-head-start');
|
||||
const end = document.querySelector('#sapper-head-end');
|
||||
@@ -68,20 +75,10 @@ function render(Page: ComponentConstructor, props: any, scroll: ScrollPosition,
|
||||
|
||||
component = new App({
|
||||
target,
|
||||
data: {
|
||||
Page,
|
||||
props
|
||||
},
|
||||
data,
|
||||
store,
|
||||
hydrate: true
|
||||
});
|
||||
|
||||
first_load = false;
|
||||
} else {
|
||||
component.set({
|
||||
Page,
|
||||
props
|
||||
});
|
||||
}
|
||||
|
||||
if (scroll) {
|
||||
@@ -101,6 +98,12 @@ function prepare_route(Page: ComponentConstructor, props: RouteData) {
|
||||
return { Page, props: Object.assign(props, manifest.preloaded), redirect, error };
|
||||
}
|
||||
|
||||
if (component) {
|
||||
component.set({
|
||||
preloading: true
|
||||
});
|
||||
}
|
||||
|
||||
return Promise.resolve(Page.preload.call({
|
||||
store,
|
||||
fetch: (url: string, opts?: any) => window.fetch(url, opts),
|
||||
|
||||
Reference in New Issue
Block a user