gabriel / musehub public
tree.ts typescript
19 lines 667 B
Raw
sha256:f65847c6a4ae29872f3ccbc2420f91a8948949b84a06320bdaf2ac281c89ff8a docs(F7b): governance sync — BUILT awaiting Gabriel; carry … Human patch 26 days ago
1 /**
2 * tree.ts — File tree browser page module.
3 *
4 * The tree is fully SSR'd. This module only handles the branch selector
5 * navigation, which requires JS to redirect on change.
6 *
7 * Registered as: window.MusePages['tree']
8 */
9
10 export function initTree(data: Record<string, unknown>): void {
11 const base = String(data.base ?? '');
12 const dirPath = String(data.dir_path ?? '');
13 const pathSuffix = dirPath ? '/' + dirPath : '';
14
15 const sel = document.getElementById('branch-sel') as HTMLSelectElement | null;
16 sel?.addEventListener('change', () => {
17 window.location.href = base + '/tree/' + encodeURIComponent(sel.value) + pathSuffix;
18 });
19 }
File History 2 commits
sha256:f65847c6a4ae29872f3ccbc2420f91a8948949b84a06320bdaf2ac281c89ff8a docs(F7b): governance sync — BUILT awaiting Gabriel; carry … Human patch 26 days ago
sha256:417c976b0b9320bb758749eb014d9087354fa3186e2abd2fc949e74a670237e7 merge(F7b B1): carry overseer provenance onto dev; resolve … Human minor 26 days ago