3-column library-to-lineup builder replacing the four-editor chain: library browser (search/filter/poster grid, double-click or drag to add, collections via 5 typed browse calls) · drag-to-reorder lineup with add-time constraint surfacing (Rerun/Playlist only-valid-alone, MultiCollection requires shuffle, server lineup[i] 422 mapping) · settings rail (AUTO number, channel image w/ guide-logo + bug preview, shuffle/always-playing toggles with overrides-template tags, template picker + save-as-template, advanced override/view-defaults accordion). Creates channel atomically via POST /api/channels/from-lineup, artwork uploaded at create time. navigateToPath extracted to routing.ts to avoid an App<->builder import cycle. 16 new tests (106 total). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
8 lines
372 B
TypeScript
8 lines
372 B
TypeScript
// Client-side navigation shared by the shell (App.tsx) and screens that live in
|
|
// their own modules (e.g. the Channel Builder). Kept in its own file so screens
|
|
// don't import App.tsx (which would create an import cycle).
|
|
export function navigateToPath(path: string) {
|
|
window.history.pushState(null, '', path);
|
|
window.dispatchEvent(new PopStateEvent('popstate'));
|
|
}
|