Variable FeedTimelinePageSchemaConst
FeedTimelinePageSchema: Struct<
{
entries: $Array<
Union<
readonly [
Struct<
{
key: String;
media: Struct<
{
carousel_media: optionalKey<$Array<(...)>>;
code: String;
id: String;
injected: optionalKey<NullOr<(...)>>;
inventory_source: optionalKey<String>;
logging_info_token: optionalKey<String>;
media_type: Number;
mezql_token: optionalKey<String>;
pk: optionalKey<decodeTo<(...), (...), (...), (...)>>;
product_type: optionalKey<String>;
taken_at: optionalKey<Number>;
user: optionalKey<Struct<(...)>>;
},
>;
position: Number;
slide: optionalKey<Int>;
type: Literal<"post">;
},
>,
Struct<
{
key: String;
media: Struct<
{
carousel_media: optionalKey<$Array<(...)>>;
code: String;
id: String;
injected: optionalKey<NullOr<(...)>>;
inventory_source: optionalKey<String>;
logging_info_token: optionalKey<String>;
media_type: Number;
mezql_token: optionalKey<String>;
pk: optionalKey<decodeTo<(...), (...), (...), (...)>>;
product_type: optionalKey<String>;
taken_at: optionalKey<Number>;
user: optionalKey<Struct<(...)>>;
},
>;
position: Number;
type: Literal<"reel">;
},
>,
Struct<
{
key: String;
media: Struct<
{
carousel_media: optionalKey<$Array<(...)>>;
code: String;
id: String;
injected: optionalKey<NullOr<(...)>>;
inventory_source: optionalKey<String>;
logging_info_token: optionalKey<String>;
media_type: Number;
mezql_token: optionalKey<String>;
pk: optionalKey<decodeTo<(...), (...), (...), (...)>>;
product_type: optionalKey<String>;
taken_at: optionalKey<Number>;
user: optionalKey<Struct<(...)>>;
},
>;
position: Number;
type: Literal<"ad">;
},
>,
Struct<
{
key: String;
media: Struct<
{
carousel_media: optionalKey<$Array<(...)>>;
code: String;
id: String;
injected: optionalKey<NullOr<(...)>>;
inventory_source: optionalKey<String>;
logging_info_token: optionalKey<String>;
media_type: Number;
mezql_token: optionalKey<String>;
pk: optionalKey<decodeTo<(...), (...), (...), (...)>>;
product_type: optionalKey<String>;
taken_at: optionalKey<Number>;
user: optionalKey<Struct<(...)>>;
},
>;
position: Number;
source: String;
type: Literal<"explore_story">;
},
>,
Struct<
{
key: String;
position: Number;
subtitle: String;
title: String;
type: Literal<"caught-up">;
},
>,
Struct<
{
key: String;
position: Number;
posts: $Array<
Struct<
{
id: optionalKey<(...)>;
media_type: optionalKey<(...)>;
user: optionalKey<(...)>;
},
>,
>;
title: String;
type: Literal<"threads">;
},
>,
Struct<
{
key: String;
position: Number;
reels: $Array<
Struct<
{
id: optionalKey<(...)>;
is_eof: optionalKey<(...)>;
media_type: optionalKey<(...)>;
pk: optionalKey<(...)>;
user: optionalKey<(...)>;
},
>,
>;
title: String;
type: Literal<"suggested-reels">;
},
>,
Struct<
{
item: Struct<
{
kind: Literal<"unknown">;
kindKey: optionalKey<String>;
raw: Codec<Json, Json, never, never>;
},
>;
key: String;
position: Number;
type: Literal<"unknown">;
},
>,
],
>,
>;
more_available: Boolean;
next_max_id: optionalKey<String>;
requestId: String;
},
> = ...
One page of the timeline: the entries the app shows, the cursor the next page is requested with, and the request id this page was fetched with — the opening's id, so the state can carry it to the pages after the first. Nothing derived from the entries is stored here: the feed position the next page starts at and the
taken_atof the last media are read offentrieswhen the cursor is made (feedTimelineCursorOf), so the page keeps only the answer.