The item handles one of the screen's own lists shows over fresh data: the
same item definitions and the screen as their origin, so their edges and
state are the screen's. list names a list the screen declares and data
carries the field that list reads (at), typed from the declaration. An
action answers with rows the app has just received (a rail a follow
reloaded) through it, via actionWithHandle, instead of the visit's
snapshot.
Items is the screen's own items type (typeof profileItems): the rows
are typed by that list's item inputs, so a row of another shape does not
compile. A row that still reaches the item's decoder (a caller outside the
type) is a ScreenDataError, never a defect. The item definitions' enters
run, so the effect carries their errors and services as the host's enter
does — except the process services a handle's checkpoint() holds, which
an item handle has no checkpoint() to need — and the handles are typed by
ScreenItemHandles, branded with the list (ScreenItemRowsShape):
the run function does not know the handle its action is bound to, so the
action's answer — these rows, or a field holding them — is retyped over the
handle the action is called on, and the rows are exactly the type of that
handle's own list. Showing
the list is a transition — the screen holds the top while the item enters
run — and the effect carries that too (ScreenEnterConcurrentError,
ScreenStack, MobileNavigation).
The item handles one of the screen's own lists shows over fresh data: the same item definitions and the screen as their origin, so their edges and state are the screen's.
listnames a list the screen declares anddatacarries the field that list reads (at), typed from the declaration. An action answers with rows the app has just received (a rail a follow reloaded) through it, via actionWithHandle, instead of the visit's snapshot.Itemsis the screen's ownitemstype (typeof profileItems): the rows are typed by that list's item inputs, so a row of another shape does not compile. A row that still reaches the item's decoder (a caller outside the type) is aScreenDataError, never a defect. The item definitions'enters run, so the effect carries their errors and services as the host'senterdoes — except the process services a handle'scheckpoint()holds, which an item handle has nocheckpoint()to need — and the handles are typed by ScreenItemHandles, branded with the list (ScreenItemRowsShape): the run function does not know the handle its action is bound to, so the action's answer — these rows, or a field holding them — is retyped over the handle the action is called on, and the rows are exactly the type of that handle's own list. Showing the list is a transition — the screen holds the top while the item enters run — and the effect carries that too (ScreenEnterConcurrentError,ScreenStack,MobileNavigation).