Phase 5 of the console rewrite, part 1: the shell.
Rewritten from what it does, with new tests written first; the layout and navigation tests passed on the old code before the rewrite.
layout.ts: which pages an account sees is now one table of rules.
adminRoute.ts (new): reading the path, the page title, the session and where to land; AdminPanel is rewritten around it.
pageRoute.ts (new): which kind of page a path shows; MainContent is rewritten around it.
The sidebar, top bar and nav tree are rewritten with the same markup. The icon lookup is shared, and the Ctrl+K check moves to shortcuts.ts.
Dropped: an unused layout helper and an unused parameter.
After this PR: 88.3% not upstream's (was 87.0%), 8,880 upstream lines left in 28 files, 14 dual headers. Tests: 865 → 929.
Visual check: on a local preview I screenshotted all 168 pages in light and dark plus the menus, palette and dialogs, first on main and then on this branch, on the same data. Nothing changed apart from live dashboard numbers and one extra audit log row from the second run's own sign-in. A scripted run of the shell (landing redirects, page titles, section tabs, the account menu, Ctrl+K, the legacy sidebar, the rail and the phone menu) also matched, screen for screen and line for line.
Typecheck, lint, i18n:check, tests, build and notice check pass locally. No new strings.
Phase 5 of the console rewrite, part 1: the shell.
Rewritten from what it does, with new tests written first; the layout and navigation tests passed on the old code before the rewrite.
- `layout.ts`: which pages an account sees is now one table of rules.
- `adminRoute.ts` (new): reading the path, the page title, the session and where to land; `AdminPanel` is rewritten around it.
- `pageRoute.ts` (new): which kind of page a path shows; `MainContent` is rewritten around it.
- The sidebar, top bar and nav tree are rewritten with the same markup. The icon lookup is shared, and the Ctrl+K check moves to `shortcuts.ts`.
Dropped: an unused layout helper and an unused parameter.
After this PR: 88.3% not upstream's (was 87.0%), 8,880 upstream lines left in 28 files, 14 dual headers. Tests: 865 → 929.
**Visual check:** on a local preview I screenshotted all 168 pages in light and dark plus the menus, palette and dialogs, first on main and then on this branch, on the same data. Nothing changed apart from live dashboard numbers and one extra audit log row from the second run's own sign-in. A scripted run of the shell (landing redirects, page titles, section tabs, the account menu, Ctrl+K, the legacy sidebar, the rail and the phone menu) also matched, screen for screen and line for line.
Typecheck, lint, i18n:check, tests, build and notice check pass locally. No new strings.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Phase 5 of the console rewrite, part 1: the shell.
Rewritten from what it does, with new tests written first; the layout and navigation tests passed on the old code before the rewrite.
layout.ts: which pages an account sees is now one table of rules.adminRoute.ts(new): reading the path, the page title, the session and where to land;AdminPanelis rewritten around it.pageRoute.ts(new): which kind of page a path shows;MainContentis rewritten around it.shortcuts.ts.Dropped: an unused layout helper and an unused parameter.
After this PR: 88.3% not upstream's (was 87.0%), 8,880 upstream lines left in 28 files, 14 dual headers. Tests: 865 → 929.
Visual check: on a local preview I screenshotted all 168 pages in light and dark plus the menus, palette and dialogs, first on main and then on this branch, on the same data. Nothing changed apart from live dashboard numbers and one extra audit log row from the second run's own sign-in. A scripted run of the shell (landing redirects, page titles, section tabs, the account menu, Ctrl+K, the legacy sidebar, the rail and the phone menu) also matched, screen for screen and line for line.
Typecheck, lint, i18n:check, tests, build and notice check pass locally. No new strings.