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

    Variable DirectForwardingSheetScreenConst

    DirectForwardingSheetScreen: ScreenDefinition<
        "DirectForwardingSheet",
        "screen",
        { item_id: string; thread_id: string },
        {
            thread_id: string;
            threads: readonly {
                is_group: boolean;
                thread_id: string;
                thread_title: string;
                users: readonly {
                    fbid_v2?: string;
                    full_name: string;
                    pk: string;
                    username: string;
                }[];
            }[];
        },
        { item_id: string; thread_id: string },
        never,
        MobileSession | MobileNavigation | MobileUserFlows,
        {},
        {
            threads: {
                at: "threads";
                item: ScreenItemDefinition<
                    "DirectForwardingSheetThread",
                    {
                        is_group: boolean;
                        thread_id: string;
                        thread_title: string;
                        users: readonly {
                            fbid_v2?: string;
                            full_name: string;
                            pk: string;
                            username: string;
                        }[];
                    },
                    {
                        is_group: boolean;
                        thread_id: string;
                        thread_title: string;
                        users: readonly {
                            fbid_v2?: string;
                            full_name: string;
                            pk: string;
                            username: string;
                        }[];
                    },
                    DirectForwardingSheetThreadState,
                    never,
                    never,
                    {
                        send: (
                            self: ScreenHandle,
                            state: DirectForwardingSheetThreadState,
                        ) => (
                            ...args: [],
                        ) => Effect<
                            ScreenFrameHandle
                            | ActionValue<undefined>,

                                | IgApiError
                                | RequestError
                                | ParseError
                                | TransportError
                                | ScreenEnterConcurrentError,
                            | PlainJsonApiHttp
                            | Signature
                            | MobileDevice
                            | NavigationWire
                            | MobileNavigation
                            | ScreenStack,
                        >;
                    },
                    { item_id: string; thread_id: string },
                    never,
                >;
                key: "thread_id";
                source: ScreenNoItemNodes;
            };
        },
        never,
        "thread_id",
    > = ...

    DirectShareSheetFragment:direct_forwarding_sheet, the sheet a message is forwarded through: the message's forward() opens it, and picking a conversation forwards the message there (the row's send). The sheet sends no request of its own: the app lists the conversations it holds in its local store (MobileSessionState.directInboxCache), so the sheet's data is the store's head and opening it sends nothing.

    Its open starts the app's share-sheet user flow (instagram_aud_sharing_bottomsheet_low, marker 332015091), which is the x-ig-salt-ids the recording's forward carries (android-451/direct-message-forward 187). The flow outlives the sheet: the unsend of the same visit, 167 s later and after the sheet was closed, still carries the marker (direct-message-unsend 194), so the screen does not end it.

    The app presents it as a bottom sheet over the conversation (modal; its open and close carry contained_within_bottom_sheet: true). Its close is a navigation back to the conversation like any other — the app logs it, and the conversation's chain entry is stamped again — but the sheet never paused the conversation, so the thread's slot flows stay where that visit left them, as the recording shows (nothing after the sheet carries the conversation's markers).

    Guide: The forwarding sheet