Readonlyactions: ActionsOptional ReadonlybeforeLeave?: (Readonlyenter: (args: ScreenFeedEnter<Kind, Input, Data, FE, FR>) => Effect<void, E, R>Optional Readonlyhost?: (input: Input) => HostThe facts the feed carries beside its cursor, derived from its input: the feed's state is them beside the cursor, and its items read them as their host's state.
Readonlyid: IdReadonlyinput: ScreenCodec<Input, ScreenEncodedInput>Readonlyitems: Page & ScreenItemListCheck<Data, Page>Readonlykind: KindOptional Readonlyleave?: (Optional Readonlyresume?: (
Declares a feed screen: a screen whose handle is one page of a feed and whose items are that page's entries.
itemsdeclares them like any item list —{ at, key, item }or{ at, key, by, variants }— over one page's answer.start,defaults,request,cursorandresponseare where the pages come from (ScreenFeedSource), flat on the declaration.enter({ input, navigate, firstPage })is the burst:firstPagerequests the first page, exactly once (else it dies withScreenFeedPageError, a defect of the declaration).itemsholds its items, and none of the answer's own fields is on it.nextPage()— on every instance — requests the page after the one it is asked of with that page's own cursor, shows its items (theirenters run, one after another, under the screen's frame) and returns a new instance for it, never changing the one it was asked of;undefined, with nothing sent, when the answer said no page follows. It is a transition: the screen must be on top and holds the top while the page loads. The frame keeps its deepest page, and every return to it (back, a tab switch, a retrace, a restore) hands out that page's instance.ScreenFeedState).leaveandresumeare the screen's visits, as for any screen. A feed's items have no visits (the app has none): theirs never run.The definition is pipeable:
defineFeedScreen({ … }).pipe(swipeableFeed({ … }))makes the swipeable variant; a feed'sstreamis its items — by page requests, or, on a swipeable feed, by swipes. A trail stores an item of a later page by its list, key and page number; a retrace requests the pages up to it again, fresh.