IGPAPI
    Preparing search index...

    Variable DirectThreadNicknameChangeScreenConst

    DirectThreadNicknameChangeScreen: ScreenDefinition<
        "DirectThreadNicknameChange",
        "screen",
        { thread_v2_id: string; user_id: string },
        { thread_v2_id: string; user_id: string },
        { thread_v2_id: string; user_id: string },

            | InvalidSkipOrdinalsError
            | ScreenEnterNavigationError
            | DirectThreadNotCreatedError,
        MobileNavigation,
        {
            changeNickname: (
                self: ScreenHandle,
                state: { thread_v2_id: string; user_id: string },
            ) => (
                ...args: [nickname: string],
            ) => Effect<
                boolean,
                | IgApiError
                | RequestError
                | ParseError
                | TransportError
                | SchemaError
                | GraphqlRootFieldMissingError
                | ScreenEnterConcurrentError
                | ScreenNotOnTopError,
                GraphqlJsonHttp
                | MobileApplication
                | MobileNavigation
                | ScreenStack,
            >;
        },
        Record<never, never>,
        never,
    > = ...

    ThreadDetailsNicknameChangeFragment, one participant's nickname editor. Opening it sends nothing; Done sends IGDirectChangeNicknameQuery (451, the nicknames journey). The thread's edge maps the participant it shows to the user id the editor is opened with, so the mutation's user_igid comes from the editor's state, never from a literal.

    Unverified: the app reaches this editor through the thread details, the shared media and the nicknames list (451 chain direct_thread:5 → details 7 → shared media 8 → nicknames 9 → editor 12); the model opens it from the thread directly, an edge no recording shows.

    A composer has no thread to edit nicknames in: the screen refuses the composer's empty thread id in the enter, before any navigation.