ui: declarative per-page tab titles via definePage title

This commit is contained in:
2026-09-04 21:59:09 +00:00
parent 6476695d29
commit 6229c39347
18 changed files with 84 additions and 4 deletions
+4
View File
@@ -25,6 +25,7 @@ const _mounted = new Map();
* Define a page component.
*
* @param {object} def — Page definition
* @param {string} [def.title] — Full browser tab title; applied to document.title on mount
* @param {function} def.init — Return initial state object
* @param {function} [def.load] — Optional one-time setup called on mount
* @param {function} def.render — Render function that returns vnodes
@@ -52,6 +53,7 @@ export function definePage(def) {
},
load: def.load || null,
onUnmount: def.onUnmount || null,
title: def.title || null,
};
return renderer;
@@ -65,6 +67,8 @@ export function mountComponent(key, renderer) {
const pd = renderer._pageDef;
if (!pd) return;
if (pd.title) document.title = pd.title;
let entry = _mounted.get(key);
if (entry) {