siftlode/frontend/src/lib
npeter83 eef64ef811 refactor(filters): stop mirroring filters into the URL; localStorage is canonical
Filters/sort/search/scope were written to the address bar on every change (a leftover
from sharing reproducible examples), giving two sources of truth. Make localStorage the
single source: drop the automatic syncUrl from setFilters/setPage. A "Share view" link
still hydrates filters on first load, after which the query is stripped from the URL
(stripUrlParams) so it stays clean. syncUrl is replaced by shareUrl (builds the link on
demand); the serializer now also round-trips scope.
2026-06-15 12:29:43 +02:00
..
api.ts feat(filters): dynamic faceted chips driven by /api/facets 2026-06-15 12:06:02 +02:00
format.ts feat(i18n): translate remaining components (HU/EN/DE) 2026-06-15 00:47:04 +02:00
hints.ts feat(ui): liquid-glass design system, settings polish, hints, notif fixes 2026-06-11 21:08:35 +02:00
notifications.ts fix(notifications): don't resurrect stale toasts on reload 2026-06-12 18:07:31 +02:00
onboarding.ts feat(onboarding): first-login wizard for incremental YouTube consent 2026-06-14 01:11:29 +02:00
releaseNotes.ts docs(release): note multilingual UI in v0.1.0 release notes 2026-06-15 02:09:22 +02:00
sidebarLayout.ts feat(ui): customizable sidebar — collapsible, reorderable, toggleable widgets 2026-06-11 19:21:48 +02:00
theme.ts feat: M4 (part 2) — React reader UI with theming 2026-06-11 02:19:47 +02:00
urlState.ts refactor(filters): stop mirroring filters into the URL; localStorage is canonical 2026-06-15 12:29:43 +02:00
version.ts feat(i18n): foundation — react-i18next, language switcher, server-persisted choice 2026-06-15 00:30:34 +02:00