@jsenv/navi 0.29.463 → 0.29.464
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dev/jsenv_navi.js +50 -39
- package/dist/dev/jsenv_navi.js.map +4 -4
- package/dist/jsenv_navi.js +50 -39
- package/dist/jsenv_navi.js.map +4 -4
- package/docs/navigation.md +24 -9
- package/package.json +1 -1
package/docs/navigation.md
CHANGED
|
@@ -511,15 +511,30 @@ on, and the position stays for the visit that brings it back. What it costs: a
|
|
|
511
511
|
slow read that every page asks for delays the position of every page, since
|
|
512
512
|
nothing tells navi which reads set the height.
|
|
513
513
|
|
|
514
|
-
A route action that starts asking later is waited for
|
|
515
|
-
state the page did not have yet (
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
and
|
|
521
|
-
|
|
522
|
-
|
|
514
|
+
A route action that starts asking later is waited for when it says what it
|
|
515
|
+
waits for: its `when`, a condition on app state the page did not have yet (the
|
|
516
|
+
signed-in user, an age gate). The position is written into what the page shows
|
|
517
|
+
and stays pending while a `when` of the page says no; the action that starts
|
|
518
|
+
once it holds is waited for the same way, and the position is put back again
|
|
519
|
+
once it is drawn. Params that say no are not waited for: they read the address,
|
|
520
|
+
and this one asks nothing of the action — when it asks later (a search typed),
|
|
521
|
+
the page has changed under the reader, and writing the old position would undo
|
|
522
|
+
whatever they or the app did meanwhile. So a gate on app state goes in `when`,
|
|
523
|
+
and the params keep what depends on the page:
|
|
524
|
+
|
|
525
|
+
```js
|
|
526
|
+
const BOOK_ACTION = routeAction(
|
|
527
|
+
BOOK_ROUTE,
|
|
528
|
+
BOOK.GET,
|
|
529
|
+
() => ({ slug: bookSlugSignal.value }),
|
|
530
|
+
{ when: () => catalogOpenSignal.value },
|
|
531
|
+
);
|
|
532
|
+
```
|
|
533
|
+
|
|
534
|
+
A `when` that never holds on this page (a reader who is not an admin) keeps the
|
|
535
|
+
position pending until the reader takes over. An action whose params are
|
|
536
|
+
another's answer needs nothing: the position is read again once that answer is
|
|
537
|
+
drawn, and the action asking by then is waited for.
|
|
523
538
|
|
|
524
539
|
**What navi cannot see, the page says**: a read it starts itself
|
|
525
540
|
(`useAsyncData(…, { run: true })`), content whose height arrives late. While
|