ui: declarative per-page tab titles via definePage title
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user