The shell cleared a hand-kept key list on a page switch (it missed the Files and feed keys) and cleared nothing when a page opened from a link carrying another page's keys. ModuleDef.urlKeys now names every key a page's view writes, the shell derives both from the registry, and moduleUrl.contract.test holds the declarations true: one owner per key, no shell key, exactly what each codec writes, and no undeclared key literal in the app.
15 lines
491 B
TypeScript
15 lines
491 B
TypeScript
import { BarChart3 } from "lucide-react";
|
|
import { lazyWithPreload } from "../../lib/lazyWithPreload";
|
|
import type { ModuleDef } from "../../lib/moduleDef";
|
|
|
|
// This page as the shell and the navigation know it (lib/moduleDef). Its page loads lazily.
|
|
export const statsModule: ModuleDef = {
|
|
id: "stats",
|
|
labelKey: "header.account.stats",
|
|
railKey: "nav.rail.stats",
|
|
titleKey: "header.usageStats",
|
|
icon: BarChart3,
|
|
Page: lazyWithPreload(() => import("./Stats")),
|
|
urlKeys: [],
|
|
};
|