peter
062015ba27
test(e4): loadInitialPage precedence + channelViewFrom (S1 fix)
...
Split the two URL-derived nav seeds out of NavigationProvider into
navigationInit.ts so they're unit-testable and the provider stays
react-refresh-clean (component-only exports). channelViewFrom also dedups the
identical _chan/?chan resolve the channelView seed and the onPop handler each
hand-rolled — locking the S1 fix (a popstate on a URL-only bookmark entry must
restore the channel from ?chan, not close it). Pure code motion.
Tests: the full loadInitialPage precedence matrix (?page > ?v > ?pl >
filters/?chan > stored landing > feed, with the beats-a-lower-param cases) and
channelViewFrom (_chan+name, ?chan fallback, state-over-url, closed → null).
15 tests; full FE gate green (tsc/eslint/prettier/knip).
2026-08-20 05:21:13 +02:00
..
2026-07-21 02:26:40 +02:00
2026-08-11 04:04:06 +02:00
2026-08-11 04:04:06 +02:00
2026-08-19 01:13:40 +02:00
2026-08-15 04:45:32 +02:00
2026-08-15 04:45:32 +02:00
2026-08-09 21:06:58 +02:00
2026-08-09 17:43:42 +02:00
2026-08-09 17:43:42 +02:00
2026-08-19 01:13:40 +02:00
2026-08-09 03:18:04 +02:00
2026-08-09 03:18:04 +02:00
2026-06-12 18:01:43 +02:00
2026-08-08 09:28:23 +02:00
2026-08-11 04:20:10 +02:00
2026-08-08 00:50:05 +02:00
2026-08-15 06:38:19 +02:00
2026-08-15 07:20:18 +02:00
2026-08-13 23:41:12 +02:00
2026-07-21 02:26:40 +02:00
2026-08-15 05:28:59 +02:00
2026-08-15 17:13:52 +02:00
2026-08-09 21:06:58 +02:00
2026-08-18 05:01:27 +02:00
2026-08-14 04:01:38 +02:00
2026-08-14 03:50:43 +02:00
2026-08-15 04:45:32 +02:00
2026-08-15 04:09:30 +02:00
2026-08-15 03:40:35 +02:00
2026-08-08 09:28:23 +02:00
2026-08-11 04:04:06 +02:00
2026-08-13 23:24:59 +02:00
2026-08-09 17:43:42 +02:00
2026-08-11 04:20:10 +02:00
2026-08-15 01:37:05 +02:00
2026-08-15 05:31:55 +02:00
2026-08-15 05:28:59 +02:00
2026-06-19 11:18:20 +02:00
2026-08-19 21:14:49 +02:00
2026-07-27 22:10:03 +02:00
2026-08-19 21:14:49 +02:00
2026-08-11 04:04:06 +02:00
2026-08-19 21:14:49 +02:00
2026-08-19 21:14:49 +02:00
2026-07-21 02:26:40 +02:00
2026-08-11 04:04:06 +02:00
2026-08-14 00:49:09 +02:00
2026-08-18 15:49:49 +02:00
2026-08-20 02:13:49 +02:00
2026-08-19 03:07:25 +02:00
2026-08-15 00:35:22 +02:00
2026-08-15 01:37:05 +02:00
2026-08-20 00:47:09 +02:00
2026-08-09 03:18:04 +02:00
2026-08-17 21:43:14 +02:00
2026-08-11 04:04:06 +02:00
2026-08-09 03:18:04 +02:00
2026-08-19 21:35:52 +02:00
2026-08-20 05:12:33 +02:00
2026-08-20 03:26:19 +02:00
2026-07-13 02:28:06 +02:00
2026-07-19 01:25:32 +02:00
2026-08-20 05:21:13 +02:00
2026-08-20 05:21:13 +02:00
2026-08-20 05:21:13 +02:00
2026-08-11 03:29:08 +02:00
2026-08-18 05:01:27 +02:00
2026-08-18 05:01:27 +02:00
2026-07-18 19:11:38 +02:00
2026-08-09 17:43:42 +02:00
2026-08-08 00:50:05 +02:00
2026-08-17 21:43:14 +02:00
2026-08-17 21:43:14 +02:00
2026-07-21 02:26:40 +02:00
2026-07-21 22:29:39 +02:00
2026-08-19 05:41:52 +02:00
2026-08-19 05:41:52 +02:00
2026-08-09 03:18:04 +02:00
2026-08-11 04:04:06 +02:00
2026-08-20 02:13:49 +02:00
2026-08-20 00:47:09 +02:00
2026-08-20 05:16:06 +02:00
2026-08-20 03:26:19 +02:00
2026-08-09 17:43:42 +02:00
2026-08-17 20:41:13 +02:00
2026-08-19 06:10:48 +02:00
2026-08-17 20:21:29 +02:00
2026-08-12 00:06:21 +02:00
2026-08-13 03:20:01 +02:00
2026-08-09 17:43:42 +02:00
2026-08-15 01:01:03 +02:00
2026-08-16 08:05:18 +02:00
2026-08-16 19:02:02 +02:00
2026-08-16 18:30:48 +02:00
2026-08-17 22:18:07 +02:00
2026-08-17 22:18:07 +02:00
2026-08-20 00:47:09 +02:00
2026-08-20 05:16:06 +02:00
2026-08-20 05:16:06 +02:00
2026-08-19 06:10:48 +02:00
2026-07-27 22:10:03 +02:00
2026-08-11 02:20:52 +02:00
2026-08-11 04:04:06 +02:00
2026-08-09 01:03:53 +02:00
2026-08-19 01:32:26 +02:00
2026-08-19 01:32:26 +02:00
2026-08-09 03:18:04 +02:00
2026-08-20 03:52:11 +02:00
2026-08-19 21:35:52 +02:00
2026-08-17 22:18:07 +02:00
2026-08-17 21:31:22 +02:00
2026-08-14 22:58:42 +02:00
2026-08-14 22:58:42 +02:00
2026-08-18 03:02:34 +02:00
2026-08-11 04:04:06 +02:00
2026-08-11 04:04:06 +02:00
2026-08-20 00:47:09 +02:00
2026-08-11 02:20:52 +02:00
2026-08-14 00:10:13 +02:00
2026-08-14 00:10:13 +02:00
2026-08-15 01:04:59 +02:00
2026-08-09 17:43:43 +02:00
2026-08-09 17:46:13 +02:00
2026-08-15 01:37:05 +02:00
2026-08-09 17:43:42 +02:00
2026-08-09 03:18:04 +02:00
2026-08-11 02:20:52 +02:00
2026-07-21 02:26:40 +02:00
2026-08-16 19:02:02 +02:00
2026-08-16 18:30:48 +02:00
2026-06-19 11:18:20 +02:00
2026-08-20 03:52:11 +02:00
2026-08-11 04:04:06 +02:00
2026-08-08 01:38:06 +02:00
2026-07-27 22:40:11 +02:00
2026-08-19 01:32:26 +02:00
2026-08-11 04:04:06 +02:00
2026-08-11 04:04:06 +02:00
2026-07-27 22:10:03 +02:00