IGPAPI
    Preparing search index...

    Variable ReelsViewerScreenConst

    ReelsViewerScreen: ScreenDefinition<
        "ReelsViewer",
        "screen",
        {
            chainingPosition?: string
            | number;
            chainingSeedMediaId?: string;
            chainingSessionId?: string;
            clientPosition?: string | number;
            mediaId: string;
            mediaPctWatched?: string | number;
            rankingSessionId?: string;
            storyRankingToken?: string;
        },
        { mediaId: string },
        {
            chainingPosition?: string | number;
            chainingSeedMediaId?: string;
            chainingSessionId?: string;
            clientPosition?: string | number;
            mediaId: string;
            mediaPctWatched?: string | number;
            rankingSessionId?: string;
            storyRankingToken?: string;
        },
        InvalidSkipOrdinalsError
        | ScreenEnterNavigationError,
        MobileNavigation,
        {
            like: (
                self: ScreenHandle,
                state: {
                    chainingPosition?: string | number;
                    chainingSeedMediaId?: string;
                    chainingSessionId?: string;
                    clientPosition?: string | number;
                    mediaId: string;
                    mediaPctWatched?: string | number;
                    rankingSessionId?: string;
                    storyRankingToken?: string;
                },
            ) => (
                ...args: [],
            ) => Effect<
                | {
                    data: {
                        xig_media_like: {
                            media: {
                                __typename?: (...)
                                | (...);
                                has_liked: boolean;
                                id: string;
                                strong_id__?: (...) | (...);
                            };
                        };
                    };
                }
                | MediaLikeRestResponse,
                | IgApiError
                | RequestError
                | ParseError
                | TransportError
                | UserIdNotFoundInState
                | SchemaError
                | GraphqlRootFieldMissingError
                | MobileMediaLikeWireNotDeclaredError
                | ScreenEnterConcurrentError
                | ScreenNotOnTopError,
                | PlainJsonApiHttp
                | Signature
                | MobileSession
                | MobileDevice
                | GraphqlJsonHttp
                | MobileApplication
                | NavigationWire
                | MobileNavigation
                | ScreenStack,
            >;
            openComments: (
                self: ScreenHandle,
                state: {
                    chainingPosition?: string | number;
                    chainingSeedMediaId?: string;
                    chainingSessionId?: string;
                    clientPosition?: string | number;
                    mediaId: string;
                    mediaPctWatched?: string | number;
                    rankingSessionId?: string;
                    storyRankingToken?: string;
                },
            ) => ScreenEdgeBound<
                ScreenEdgeShape<
                    ScreenDefinition<
                        "MediaComments",
                        "screen",
                        | {
                            carouselIndex?: string
                            | number;
                            commentSessionId?: string;
                            feedPosition?: string | number;
                            mediaId: string;
                            surface: "feed";
                        }
                        | {
                            chainingPosition?: string
                            | number;
                            chainingSeedMediaId?: string;
                            chainingSessionId?: string;
                            clientPosition?: string | number;
                            commentSessionId?: string;
                            mediaId: string;
                            rankingSessionId?: string;
                            storyRankingToken?: string;
                            surface: "reels";
                        },
                        {
                            commentSessionId: string;
                            createdMediaNoteIds: readonly string[];
                            mediaId: string;
                            surface: "feed"
                            | "reels";
                        },
                        MediaCommentsState,
                        InvalidSkipOrdinalsError
                        | ScreenEnterNavigationError,
                        MobileNavigation,
                        {
                            comment: (
                                self: ScreenHandle,
                                state: MediaCommentsState,
                            ) => (
                                ...args: [text: string, options?: (...) | (...)],
                            ) => Effect<
                                MediaCommentResponse,
                                (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...),
                                (...) | (...) | (...) | (...) | (...) | (...) | (...) | (...),
                            >;
                        },
                        Record<never, never>,
                        never,
                    >,
                    readonly [{ commentSessionId?: string }],
                >,
                (
                    ...args: readonly [{ commentSessionId?: string }],
                ) => Effect<
                    AssembledHandle<
                        "MediaComments",
                        "screen",
                        {
                            commentSessionId: string;
                            createdMediaNoteIds: readonly string[];
                            mediaId: string;
                            surface: "feed"
                            | "reels";
                        },
                        {
                            comment: (
                                self: ScreenHandle,
                                state: MediaCommentsState,
                            ) => (
                                ...args: [text: ..., options?: ...],
                            ) => Effect<(...), (...), (...)>;
                        },
                        Record<never, never>,
                        ScreenHandle,
                        "required",
                    >,

                        | InvalidSkipOrdinalsError
                        | ScreenDataError
                        | ScreenEnterNavigationError
                        | ScreenEnterConcurrentError
                        | ScreenNotOnTopError
                        | ScreenEdgeInputError,
                >,
            >;
        },
        Record<never, never>,
        never,
    > = ...

    ClipsViewerFragment:clips_viewer, a reel opened full-screen.

    Visible: one reel, the like/comment/share rail, and the reels the chaining session swipes through. Its chain entry stays clips_viewer while its client endpoint and container module name the reel surface (clips_viewer_reel).

    Reached from: a feed post (FeedTimelinePostItem.play, source warm_start) or a link outside the app (source third_party_url; the reels comment recording has both entries).

    Requests: enter comes to front and sends nothing — the viewer's clips/items prefetch is not modelled (the captures carry the request but no answer, so the library has no schema to read the reels with).

    Actions: like is the reel's like on the reels surface (the session's wire) with the chaining values from the viewer's input; openComments opens the comments sheet over the reel.

    Recorded by: Android 450 captures of the reels viewer's like and its comments.

    The reels viewer