@uniweb/runtime 1.5.0 → 1.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ssr.js +13 -13
- package/dist/ssr.js.map +1 -1
- package/package.json +4 -4
- package/src/components/Layout.jsx +7 -3
- package/src/components/PageRenderer.jsx +9 -3
- package/src/page-renderer.js +5 -10
- package/src/ssr-renderer.js +16 -17
- package/src/sticky-check.js +36 -0
- package/src/sticky-top.js +7 -2
- package/src/under-header.js +33 -1
- package/src/start-page.js +0 -26
package/dist/ssr.js
CHANGED
|
@@ -450,6 +450,13 @@ function headerOverlay(page) {
|
|
|
450
450
|
function overlayBoxProps(props) {
|
|
451
451
|
return { ...props || {}, style: { ...props?.style || {}, height: 0, minHeight: 0 }, "data-uw-header": "over" };
|
|
452
452
|
}
|
|
453
|
+
function headerAreaProps(wrapper, overlay) {
|
|
454
|
+
const { viewTransitionName, ...style } = wrapper?.style || {};
|
|
455
|
+
const inner = viewTransitionName ? { style: { viewTransitionName } } : null;
|
|
456
|
+
const base = { ...wrapper || {}, style };
|
|
457
|
+
if (overlay) return { outer: overlayBoxProps(base), inner };
|
|
458
|
+
return { outer: Object.keys(style).length ? base : { ...base, style: { display: "contents" } }, inner };
|
|
459
|
+
}
|
|
453
460
|
function underHeaderProps(overlay) {
|
|
454
461
|
return {
|
|
455
462
|
style: { [HEADER_HEIGHT]: `var(${MEASURED_HEADER_HEIGHT}, ${overlay.height})` },
|
|
@@ -517,13 +524,6 @@ function documentTitle(pageTitle, siteName) {
|
|
|
517
524
|
const title = String(pageTitle);
|
|
518
525
|
return siteName ? `${title} | ${siteName}` : title;
|
|
519
526
|
}
|
|
520
|
-
const startPages = /* @__PURE__ */ new WeakMap();
|
|
521
|
-
function recordStartPage(website) {
|
|
522
|
-
if (website && !startPages.has(website)) startPages.set(website, website.activePage);
|
|
523
|
-
}
|
|
524
|
-
function restoreStartPage(website) {
|
|
525
|
-
if (startPages.has(website)) website.activePage = startPages.get(website);
|
|
526
|
-
}
|
|
527
527
|
function resolvePage(website, route) {
|
|
528
528
|
return website.getPage(route);
|
|
529
529
|
}
|
|
@@ -649,8 +649,11 @@ function renderLayout(page, website) {
|
|
|
649
649
|
const layers = resolveLayoutLayers(areaNames, layoutMeta?.layers, sticky);
|
|
650
650
|
const overlay = headerOverlay(page);
|
|
651
651
|
const wrapArea = (name, element) => {
|
|
652
|
-
|
|
653
|
-
if (
|
|
652
|
+
const props = areaWrapperProps(name, transitions, layers, RemoteLayout ? sticky[name] : null);
|
|
653
|
+
if (RemoteLayout && name === "header") {
|
|
654
|
+
const { outer, inner } = headerAreaProps(props, overlay);
|
|
655
|
+
return React.createElement("div", outer, inner ? React.createElement("div", inner, element) : element);
|
|
656
|
+
}
|
|
654
657
|
return props ? React.createElement("div", props, element) : element;
|
|
655
658
|
};
|
|
656
659
|
const bodyElement = bodyBlocks ? wrapArea("body", renderBlocks(bodyBlocks, { stickySelf: "section" })) : null;
|
|
@@ -697,7 +700,6 @@ function initPrerender(content, foundation, extensionsOrOptions, maybeOptions) {
|
|
|
697
700
|
} } = options;
|
|
698
701
|
onProgress("Initializing runtime...");
|
|
699
702
|
const uniweb = createUniweb(content, foundation, extensions);
|
|
700
|
-
recordStartPage(uniweb.activeWebsite);
|
|
701
703
|
if (content.config?.base && uniweb.activeWebsite?.setBasePath) {
|
|
702
704
|
uniweb.activeWebsite.setBasePath(content.config.base);
|
|
703
705
|
}
|
|
@@ -778,7 +780,7 @@ function classifyRenderError(err) {
|
|
|
778
780
|
};
|
|
779
781
|
}
|
|
780
782
|
function renderPage(page, website) {
|
|
781
|
-
|
|
783
|
+
website.setActivePage(page);
|
|
782
784
|
if (page.hasContent?.() && page.getBodyBlocks().length === 0) {
|
|
783
785
|
return {
|
|
784
786
|
error: {
|
|
@@ -1429,8 +1431,6 @@ function createPageRenderer({ website, shell }) {
|
|
|
1429
1431
|
if (!resolved) return { outcome: "notFound", html: null, page: null, error: null };
|
|
1430
1432
|
const page = typeof resolved.getRenderableSelf === "function" ? resolved.getRenderableSelf() : resolved;
|
|
1431
1433
|
const missing = !named || page?.notFound === true;
|
|
1432
|
-
restoreStartPage(website);
|
|
1433
|
-
if (typeof target === "string") website.setActivePage(target);
|
|
1434
1434
|
const icons = /* @__PURE__ */ new Map();
|
|
1435
1435
|
let result;
|
|
1436
1436
|
try {
|