Something done on an item of a list that changes what the item shows (the
slide a person swiped a carousel post to): the run answers the item's fresh
entry — the input of its list entry — and the engine rebuilds that one row
and puts it in the host's rows, answering its handle, so the caller continues
with the item it already has, over the fresh row. The call is typed like an
updating screen's (updatingAction): the answer is the very handle it
was called on.
It keeps updatingAction's contract for the one row:
one transaction: the run collects its answers (recordRawAnswers, the fresh row's
raw is the run's answers), the host's other transitions are refused
(ScreenEnterConcurrentError, typed), and the action runs only while the
host is on top;
exactly one row changes: the fresh row takes the replaced row's page
(locator) and key, and every other row of the host — the other items of
the page, the items of the other pages, the item in front — stays as it was;
the visit continues: a row is not shown again by an update of its entry,
so the fresh row does not enter again and continues the visit the replaced
row held (a swipeable feed's item in front stays in front; its leave,
later, ends that visit once). Only a screen's own content ends its rows'
visits (updatingAction). On a host that is no feed the visit index names
the fresh row where the replaced one stood, so the frame's leave runs on
the row as it is last shown;
the row is the frame's: a feed puts it in the page record that owns its
rows (DefinitionFacts.replaceRow), so the lookup index, the item in front
and the checkpoint all read the fresh row after the feed moves on; any other
host rewrites its lookup and visit indexes. The row dies with the frame. The
handle the action was called on keeps the snapshot it was shown with;
the row is one of its list's: it keeps the siblings of the row it
replaces, so an edge taken from it still finds the key twice in its list
(ScreenTrailAmbiguousItemError).
Something done on an item of a list that changes what the item shows (the slide a person swiped a carousel post to): the run answers the item's fresh entry — the input of its list entry — and the engine rebuilds that one row and puts it in the host's rows, answering its handle, so the caller continues with the item it already has, over the fresh row. The call is typed like an updating screen's (updatingAction): the answer is the very handle it was called on.
It keeps
updatingAction's contract for the one row:recordRawAnswers, the fresh row'srawis the run's answers), the host's other transitions are refused (ScreenEnterConcurrentError, typed), and the action runs only while the host is on top;locator) and key, and every other row of the host — the other items of the page, the items of the other pages, the item in front — stays as it was;leave, later, ends that visit once). Only a screen's own content ends its rows' visits (updatingAction). On a host that is no feed the visit index names the fresh row where the replaced one stood, so the frame'sleaveruns on the row as it is last shown;DefinitionFacts.replaceRow), so the lookup index, the item in front and the checkpoint all read the fresh row after the feed moves on; any other host rewrites its lookup and visit indexes. The row dies with the frame. The handle the action was called on keeps the snapshot it was shown with;ScreenTrailAmbiguousItemError).