gabriel / musehub public
branches.ts typescript
38 lines 1.3 KB
Raw
sha256:8e05daa29ba6702b4a2380a16d690ba31cc099d69c5c859bc6e6f16a0e945f99 Merge 'fix/deploy-memory-limits-and-log-group' into 'dev' —… Human 5 days ago
1 /**
2 * branches.ts — MuseHub branches page module.
3 *
4 * Handles client-side filtering (by type tab) and search across branch rows.
5 */
6
7 export function initBranches(): void {
8 const searchInput = document.getElementById('branch-search') as HTMLInputElement | null;
9 const branchList = document.getElementById('branch-list');
10 const typeTabs = document.querySelectorAll<HTMLAnchorElement>('.br-tab');
11 let activeFilter = 'all';
12
13 function applyFilters(): void {
14 const q = searchInput ? searchInput.value.toLowerCase() : '';
15 const rows = branchList ? branchList.querySelectorAll<HTMLElement>('.br-row') : [];
16 rows.forEach(row => {
17 const name = (row.dataset['branchName'] || '').toLowerCase();
18 const type = (row.dataset['branchType'] || '').toLowerCase();
19 const nameMatch = !q || name.includes(q);
20 const typeMatch = activeFilter === 'all' || type === activeFilter;
21 row.style.display = nameMatch && typeMatch ? '' : 'none';
22 });
23 }
24
25 if (searchInput) {
26 searchInput.addEventListener('input', applyFilters);
27 }
28
29 typeTabs.forEach(tab => {
30 tab.addEventListener('click', e => {
31 e.preventDefault();
32 typeTabs.forEach(t => t.classList.remove('br-tab--active'));
33 tab.classList.add('br-tab--active');
34 activeFilter = tab.dataset['filter'] || 'all';
35 applyFilters();
36 });
37 });
38 }
File History 3 commits
sha256:8e05daa29ba6702b4a2380a16d690ba31cc099d69c5c859bc6e6f16a0e945f99 Merge 'fix/deploy-memory-limits-and-log-group' into 'dev' —… Human 5 days ago
sha256:3fadb0439bba9451b89229676971c0d4a40900dec7810e9d5f8791b8d950d505 fix: install.sh version from latest published tarball, not … Sonnet 4.6 minor 96 days ago
sha256:763eb2cb8675073b84c19345b27586d2ed939a9aee97c5479b69f502f1a70eff fix(tests): update test suite to match current implementation Sonnet 4.6 patch 118 days ago