mirror of
https://github.com/kevin-DL/sapper.git
synced 2026-01-23 07:31:25 +00:00
use serialized preloaded data
This commit is contained in:
@@ -79,6 +79,8 @@ function render(data: any, scroll: ScrollPosition, token: {}) {
|
|||||||
if (scroll) {
|
if (scroll) {
|
||||||
window.scrollTo(scroll.x, scroll.y);
|
window.scrollTo(scroll.x, scroll.y);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ready = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
function prepare_page(target: Target): Promise<{
|
function prepare_page(target: Target): Promise<{
|
||||||
@@ -104,7 +106,7 @@ function prepare_page(target: Target): Promise<{
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
return Promise.all(page.parts.map(async part => {
|
return Promise.all(page.parts.map(async (part, i) => {
|
||||||
const { default: Component } = await part.component();
|
const { default: Component } = await part.component();
|
||||||
const req = {
|
const req = {
|
||||||
path,
|
path,
|
||||||
@@ -112,12 +114,11 @@ function prepare_page(target: Target): Promise<{
|
|||||||
params: part.params ? part.params(target.match) : {}
|
params: part.params ? part.params(target.match) : {}
|
||||||
};
|
};
|
||||||
|
|
||||||
return {
|
const preloaded = ready || !initial_data.preloaded[i]
|
||||||
Component,
|
? Component.preload ? await Component.preload.call(preload_context, req) : {}
|
||||||
preloaded: Component.preload
|
: initial_data.preloaded[i];
|
||||||
? await Component.preload.call(preload_context, req)
|
|
||||||
: {}
|
return { Component, preloaded };
|
||||||
};
|
|
||||||
})).catch(err => {
|
})).catch(err => {
|
||||||
error = { statusCode: 500, message: err };
|
error = { statusCode: 500, message: err };
|
||||||
return [];
|
return [];
|
||||||
@@ -281,6 +282,7 @@ function trigger_prefetch(event: MouseEvent | TouchEvent) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let inited: boolean;
|
let inited: boolean;
|
||||||
|
let ready = false;
|
||||||
|
|
||||||
export function init(opts: { App: ComponentConstructor, target: Node, routes: Routes, store?: (data: any) => Store }) {
|
export function init(opts: { App: ComponentConstructor, target: Node, routes: Routes, store?: (data: any) => Store }) {
|
||||||
if (opts instanceof HTMLElement) {
|
if (opts instanceof HTMLElement) {
|
||||||
|
|||||||
Reference in New Issue
Block a user