- A URL mirror names the view again on every entry Back or Forward lands on, so a change made under a dialog, a drawer or a sub-view is not undone by the next reload. - A view pushed from the entry a reload under a dialog started from no longer inherits its overlay mark; a reload under two overlays closes onto the page in one step. - The linked player reopens over a live search, gives itself up when its list moves first, and plays alone over an emptied playlist; a capped Files list keeps the link it cannot resolve. - The Feed press over a channel ends the search; leaving a search ends its asked mark; Files and Playlists searches end with their page; the feed always names its view and debounces its search. - Search-box keys are declared per module and kept out of the client log below TRACE. - Writers outside lib/ go through codecs; the URL contract scans computed keys, overlay writers and two-line reads, and holds every page to a bookmark round trip (Config, Activity, Playlists and the Files sort and viewer added).
9 lines
434 B
TypeScript
9 lines
434 B
TypeScript
// The Configuration page's address-bar key: the config group its tab rail shows. Here, beside the other
|
|
// pages' keys, so the page's definition can declare it without importing the lazy page.
|
|
export const CONFIG_TAB_KEY = "cfgtab";
|
|
|
|
/** The address-bar delta for the config group shown (null: none named). */
|
|
export function configTabParams(tab: string | null): Record<string, string | null> {
|
|
return { [CONFIG_TAB_KEY]: tab };
|
|
}
|