igpapi — Instagram private API Simulator for Node.js (API reference) 4.14.0
    Preparing search index...

    Variable FeedTimelinePostItemConst

    FeedTimelinePostItem: ScreenItemDefinition<
        "FeedTimelinePost",
        {
            key: string;
            media: {
                carousel_media?: readonly { pk: string }[];
                code: string;
                id: string;
                injected?: { ad_id?: string } | null;
                inventory_source?: string;
                logging_info_token?: string;
                media_type: number;
                mezql_token?: string;
                pk?: string;
                product_type?: string;
                taken_at?: number;
                user?: { pk: string; username: string };
            };
            position: number;
            slide?: number;
            type: "post";
        },
        {
            key: string;
            media: {
                carousel_media?: readonly { pk: string }[];
                code: string;
                id: string;
                injected?: { ad_id?: string } | null;
                inventory_source?: string;
                logging_info_token?: string;
                media_type: number;
                mezql_token?: string;
                pk?: string;
                product_type?: string;
                taken_at?: number;
                user?: { pk: string; username: string };
            };
            position: number;
            slide?: number;
            type: "post";
        },
        FeedTimelinePostItemState,
        never,
        never,
        {
            like: (
                self: ScreenHandle,
                state: FeedTimelinePostState,
            ) => (
                ...args: [],
            ) => Effect<
                | {
                    data: {
                        xig_media_like: {
                            media: {
                                __typename?: ...;
                                has_liked: ...;
                                id: ...;
                                strong_id__?: ...;
                            };
                        };
                    };
                } & { raw: ActionRaw }
                | MediaLikeRestResponse & { raw: ActionRaw },

                    | IgApiError
                    | RequestError
                    | ParseError
                    | TransportError
                    | SchemaError
                    | GraphqlRootFieldMissingError
                    | ScreenEnterConcurrentError,
                | PlainJsonApiHttp
                | Signature
                | MobileSession
                | MobileDevice
                | GraphqlJsonHttp
                | MobileApplication
                | NavigationWire
                | MobileNavigation
                | MobileUserFlows
                | ScreenStack,
            >;
            likeCarouselChild: (
                self: ScreenHandle,
                state: FeedTimelinePostItemState,
            ) => (
                ...args: [],
            ) => Effect<
                | {
                    data: {
                        xig_media_like: {
                            media: {
                                __typename?: ...;
                                has_liked: ...;
                                id: ...;
                                strong_id__?: ...;
                            };
                        };
                    };
                } & { raw: ActionRaw }
                | MediaLikeRestResponse & { raw: ActionRaw },

                    | IgApiError
                    | RequestError
                    | ParseError
                    | TransportError
                    | SchemaError
                    | GraphqlRootFieldMissingError
                    | ScreenEnterConcurrentError
                    | CarouselSlideNotFoundError
                    | CarouselSlidesNotLoadedError,
                | PlainJsonApiHttp
                | Signature
                | MobileSession
                | MobileDevice
                | GraphqlJsonHttp
                | MobileApplication
                | NavigationWire
                | MobileNavigation
                | MobileUserFlows
                | ScreenStack,
            >;
            open: (
                self: ScreenHandle,
                state: FeedTimelinePostState,
            ) => ScreenEdgeBound<
                ScreenEdgeShape<
                    ScreenDefinition<
                        "PostOpenedFromLink",
                        "screen",
                        {
                            feedPosition?: string
                            | number;
                            loggingInfoToken?: string;
                            mediaId: string;
                        },
                        {
                            carousel?: {
                                children: readonly string[];
                                size?: number;
                                slide?: number;
                            };
                            mediaId: string;
                            trackingToken: string;
                        },
                        PostOpenedFromLinkState,
                        | IgApiError
                        | RequestError
                        | ParseError
                        | TransportError
                        | ScreenDataError,
                        PlainJsonApiHttp
                        | MobileNavigation
                        | AndroidThrottlingDetector,
                        {
                            like: (
                                self: ScreenHandle,
                                state: PostOpenedFromLinkState,
                            ) => (
                                ...args: [],
                            ) => Effect<
                                (...)
                                | (...),
                                (...) | (...) | (...) | (...) | (...) | (...) | (...) | (...) | (...),

                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...),
                            >;
                            openComments: (
                                self: ScreenHandle,
                                state: PostOpenedFromLinkState,
                            ) => ScreenEdgeBound<
                                ScreenEdgeShape<
                                    ScreenDefinition<
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                    >,
                                    readonly [(...)],
                                    "button",
                                    AndroidScreens,
                                >,
                                (...args: readonly [(...)]) => Effect<(...), (...), (...)>,
                            >;
                            repost: (
                                self: ScreenHandle,
                                state: PostOpenedFromLinkState,
                            ) => (
                                ...args: [text?: (...) | (...)],
                            ) => Effect<
                                (...) & (...),

                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...),

                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...),
                            >;
                            swipeToSlide: (
                                self: ScreenHandle,
                                state: PostOpenedFromLinkState,
                            ) => ScreenDataMember<
                                ScreenDataShape,
                                (...args: [index: ...]) => Effect<(...), (...), (...)>,
                            >;
                        },
                        Record<never, never>,
                        never,
                        "mediaId",
                    >,
                    [],
                    "button",
                    AndroidScreens,
                >,
                (
                    ...args: [],
                ) => Effect<
                    AssembledHandle<
                        "PostOpenedFromLink",
                        "screen",
                        {
                            carousel?: {
                                children: readonly (...)[];
                                size?: (...) | (...);
                                slide?: (...) | (...);
                            };
                            mediaId: string;
                            trackingToken: string;
                        },
                        {
                            like: (
                                self: ScreenHandle,
                                state: PostOpenedFromLinkState,
                            ) => (...args: []) => Effect<(...), (...), (...)>;
                            openComments: (
                                self: ScreenHandle,
                                state: PostOpenedFromLinkState,
                            ) => ScreenEdgeBound<
                                ScreenEdgeShape<(...), (...), (...), (...)>,
                                (...args: ...) => ...,
                            >;
                            repost: (
                                self: ScreenHandle,
                                state: PostOpenedFromLinkState,
                            ) => (...args: [text?: ...]) => Effect<(...), (...), (...)>;
                            swipeToSlide: (
                                self: ScreenHandle,
                                state: PostOpenedFromLinkState,
                            ) => ScreenDataMember<ScreenDataShape, (...args: ...) => ...>;
                        },
                        Record<never, never>,
                        ScreenHandle,
                        "required",
                        true,
                        "mediaId",
                        AndroidScreens,
                    >,

                        | IgApiError
                        | RequestError
                        | ParseError
                        | TransportError
                        | ScreenDataError
                        | ScreenEnterConcurrentError
                        | ScreenEdgeInputError,
                    | PlainJsonApiHttp
                    | MobileNavigation
                    | ScreenStack
                    | AndroidThrottlingDetector
                    | ScreenCatalog,
                >,
            >;
            swipeToSlide: (
                self: ScreenHandle,
                state: FeedTimelinePostItemState,
            ) => ScreenDataMember<
                ScreenDataShape,
                (
                    ...args: [index: number],
                ) => Effect<
                    ScreenHandle,
                    ScreenDataActionFailure<
                        CarouselSlideNotFoundError
                        | CarouselSlidesNotLoadedError,
                    >,
                    MobileNavigation | ScreenStack,
                >,
            >;
            unlikeCarouselChild: (
                self: ScreenHandle,
                state: FeedTimelinePostItemState,
            ) => (
                ...args: [],
            ) => Effect<
                ActionValue<string>,

                    | IgApiError
                    | RequestError
                    | ParseError
                    | TransportError
                    | ScreenEnterConcurrentError
                    | CarouselSlideNotFoundError
                    | CarouselSlidesNotLoadedError,
                | MobileDevice
                | GraphqlJsonHttp
                | MobileApplication
                | NavigationWire
                | MobileNavigation
                | ScreenStack,
            >;
        },
        undefined,
        never,
    > = ...

    One post of the timeline. Showing it sends nothing: the answer already carries the post, the library downloads no CDN media, and the app fans no item requests out to the API. An item of a swipeable feed enters when it comes in front and leaves when a swipe moves it away; the timeline's items have no enter or leave request or telemetry yet, so both send nothing (what would settle the app's impression and view-time Pigeon events on the post in focus is named in packages/android/src/screens/feed/spec/feed-screen-android-timeline-wire-448-and-451.md).

    The feed context belongs to the answer and travels with the item: the media's logging_info_token and the entry's position go into the state, and open and like use them, so the post's like sends what the app sends without the caller supplying it.

    open is the feed's one verb for every item that opens: a post opens the post full-screen (PostOpenedFromLink, source button, as the 450 post does). like is the post's like on the feed surface, with the build's wire and the feed answer's logging token and position; the post's repost and comments are the post screen's actions.