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

    Variable EditProfileScreenConst

    EditProfileScreen: ScreenDefinition<
        "EditProfile",
        "screen",
        {
            metaVerifiedOffers: {
                enhancedProfile: boolean;
                shareableLinks: boolean;
            };
        },
        {
            backgroundFailures: readonly {
                message?: string;
                request: "contactPointPrefill"
                | "identityReminder";
                tag: string;
            }[];
            biography: string;
            bioLinks: readonly {
                linkId: string;
                linkType: string;
                title: string;
                url: string;
            }[];
            fullName: string;
            profileEditParams: {
                fullName: {
                    confirmationDialogText: string;
                    disclaimerText: string;
                    isPendingReview: boolean;
                    shouldShowConfirmationDialog: boolean;
                };
                username: {
                    confirmationDialogText: string;
                    disclaimerText: string;
                    isPendingReview: boolean;
                    shouldShowConfirmationDialog: boolean;
                };
            };
            userId: string;
            username: string;
        },
        EditProfileState,
        IgApiError
        | RequestError
        | ParseError
        | TransportError
        | ScreenDataError,

            | PlainJsonApiHttp
            | Signature
            | MobileSession
            | MobileDevice
            | GraphqlJsonHttp
            | MobileApplication
            | PlainNdjsonApiHttp
            | MobileNavigation
            | MobileUserFlows,
        {
            openBio: (
                self: ScreenHandle,
                state: EditProfileState,
            ) => ScreenEdgeBound<
                ScreenEdgeShape<
                    ScreenDefinition<
                        "EditProfileBio",
                        "screen",
                        { biography: string },
                        { biography: string },
                        Record<never, never>,

                            | IgCheckpointError
                            | IgAccountSuspendedError
                            | IgAccountDisabledError
                            | IgLoginRequiredError
                            | IgUserLoggedOutError,
                        | MobileSession
                        | MobileDevice
                        | GraphqlJsonHttp
                        | MobileApplication
                        | MobileNavigation,
                        {
                            changeBio: (
                                self: ScreenHandle,
                                state: State,
                            ) => (
                                ...args: [text: string],
                            ) => Effect<
                                (...) & (...),
                                (...) | (...) | (...) | (...) | (...),

                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...),
                            >;
                        },
                        Record<never, never>,
                        never,
                        never,
                    >,
                    [],
                    "button",
                    AndroidScreens,
                >,
                (
                    ...args: [],
                ) => Effect<
                    AssembledHandle<
                        "EditProfileBio",
                        "screen",
                        { biography: string },
                        {
                            changeBio: (
                                self: ScreenHandle,
                                state: State,
                            ) => (...args: [text: ...]) => Effect<(...), (...), (...)>;
                        },
                        Record<never, never>,
                        ScreenHandle,
                        "required",
                        true,
                        never,
                        AndroidScreens,
                    >,

                        | IgCheckpointError
                        | IgAccountSuspendedError
                        | IgAccountDisabledError
                        | IgLoginRequiredError
                        | IgUserLoggedOutError
                        | ScreenDataError
                        | ScreenEnterConcurrentError
                        | ScreenEdgeInputError,
                    | MobileSession
                    | MobileDevice
                    | GraphqlJsonHttp
                    | MobileApplication
                    | MobileNavigation
                    | ScreenStack
                    | ScreenCatalog,
                >,
            >;
            openLinks: (
                self: ScreenHandle,
                state: EditProfileState,
            ) => ScreenEdgeBound<
                ScreenEdgeShape<
                    ScreenDefinition<
                        "EditProfileLinks",
                        "screen",
                        {
                            links: readonly {
                                linkId: string;
                                linkType: string;
                                title: string;
                                url: string;
                            }[];
                        },
                        {
                            links: readonly {
                                linkId: string;
                                linkType: string;
                                title: string;
                                url: string;
                            }[];
                        },
                        Record<never, never>,

                            | IgCheckpointError
                            | IgAccountSuspendedError
                            | IgAccountDisabledError
                            | IgLoginRequiredError
                            | IgUserLoggedOutError,
                        | PlainJsonApiHttp
                        | GraphqlJsonHttp
                        | MobileApplication
                        | MobileNavigation,
                        {
                            addLink: (
                                self: ScreenHandle,
                                state: never,
                            ) => ScreenEdgeBound<
                                ScreenEdgeShape<
                                    ScreenDefinition<
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                    >,
                                    [],
                                    "button",
                                    AndroidScreens,
                                >,
                                (...args: []) => Effect<(...), (...), (...)>,
                            >;
                            done: (
                                self: ScreenHandle,
                                state: State,
                            ) => (
                                ...args: [],
                            ) => Effect<
                                (...)
                                | (...),
                                (...) | (...) | (...) | (...) | (...) | (...),
                                (...) | (...) | (...) | (...) | (...) | (...) | (...) | (...) | (...),
                            >;
                        },
                        Record<never, never>,
                        never,
                        never,
                    >,
                    [],
                    "button",
                    AndroidScreens,
                >,
                (
                    ...args: [],
                ) => Effect<
                    AssembledHandle<
                        "EditProfileLinks",
                        "screen",
                        {
                            links: readonly {
                                linkId: string;
                                linkType: string;
                                title: string;
                                url: string;
                            }[];
                        },
                        {
                            addLink: (
                                self: ScreenHandle,
                                state: never,
                            ) => ScreenEdgeBound<
                                ScreenEdgeShape<(...), (...), (...), (...)>,
                                (...args: ...) => ...,
                            >;
                            done: (
                                self: ScreenHandle,
                                state: State,
                            ) => (...args: []) => Effect<(...), (...), (...)>;
                        },
                        Record<never, never>,
                        ScreenHandle,
                        "required",
                        true,
                        never,
                        AndroidScreens,
                    >,

                        | IgCheckpointError
                        | IgAccountSuspendedError
                        | IgAccountDisabledError
                        | IgLoginRequiredError
                        | IgUserLoggedOutError
                        | ScreenDataError
                        | ScreenEnterConcurrentError
                        | ScreenEdgeInputError,
                    | PlainJsonApiHttp
                    | GraphqlJsonHttp
                    | MobileApplication
                    | MobileNavigation
                    | ScreenStack
                    | ScreenCatalog,
                >,
            >;
            openUsername: (
                self: ScreenHandle,
                state: EditProfileState,
            ) => ScreenEdgeBound<
                ScreenEdgeShape<
                    ScreenDefinition<
                        "EditProfileUsername",
                        "screen",
                        { username: string },
                        { check?: { available: boolean }; username: string },
                        Record<never, never>,
                        never,
                        PlainJsonApiHttp | MobileNavigation | MobileUserFlows,
                        {
                            changeUsername: (
                                self: ScreenHandle,
                                state: State,
                            ) => (
                                ...args: [username: string],
                            ) => Effect<
                                (...) & (...),
                                (...) | (...) | (...) | (...) | (...),
                                (...) | (...) | (...) | (...) | (...) | (...) | (...) | (...) | (...),
                            >;
                            typeUsername: (
                                self: ScreenHandle,
                                state: State,
                            ) => ScreenDataMember<
                                ScreenDataShape,
                                (...args: [username: ...]) => Effect<(...), (...), (...)>,
                            >;
                        },
                        Record<never, never>,
                        never,
                        never,
                    >,
                    [],
                    "button",
                    AndroidScreens,
                >,
                (
                    ...args: [],
                ) => Effect<
                    AssembledHandle<
                        "EditProfileUsername",
                        "screen",
                        { check?: { available: boolean }; username: string },
                        {
                            changeUsername: (
                                self: ScreenHandle,
                                state: State,
                            ) => (...args: [username: ...]) => Effect<(...), (...), (...)>;
                            typeUsername: (
                                self: ScreenHandle,
                                state: State,
                            ) => ScreenDataMember<ScreenDataShape, (...args: ...) => ...>;
                        },
                        Record<never, never>,
                        ScreenHandle,
                        "required",
                        true,
                        never,
                        AndroidScreens,
                    >,
                    ScreenDataError | ScreenEnterConcurrentError | ScreenEdgeInputError,

                        | PlainJsonApiHttp
                        | MobileNavigation
                        | MobileUserFlows
                        | ScreenStack
                        | ScreenCatalog,
                >,
            >;
        },
        Record<never, never>,
        never,
        "userId",
    > = ...

    EditProfileFragment, the viewer's profile editor (edit_profile, Android 451), opened by the Edit profile button of MyProfileScreen. It shows the account's own editable fields — name, username, biography — and a row opens each field's editor.

    Actions: openBio() opens the biography editor (EditProfileBioScreen) with the biography the fields hold, openUsername() the username editor (EditProfileUsernameScreen) with the username, and openLinks() the profile's links (EditProfileLinksScreen), where the website is added. The editors save by themselves; this screen has no Done of its own. The handle is a snapshot, so a saved change shows with a fresh openEditProfile().

    Wire: the tap asks for the account's current_user (with edit=true) while the profile is still in front; the editor's entry then asks the contact-point prefill. The prefill needs no answer to show the editor, so it is best-effort and a failure stays on the handle (backgroundFailures), as does the identity query's FbidV2UnknownError when the session cannot name the viewer's Facebook id (identityReminder); a session-level failure is not background work and fails the open. The current_user answer is read by the editor's own schema before any of its fields is used: an answer of another shape is the server's decision, so the open fails with the typed ScreenDataError and is rolled back.

    The rest of the app's burst around the tap and around each save — the Meta Verified offers' prefetches (IGBloksAppRootQuery of the tier screens, MvBloksPrefetchTargetQuery, IGNMEBenefitContextualPromoConfigsQuery, IGMetaOneBenefitUpsellImpressionMutation), the one-link and Facebook-identity checks, the fundraiser and the transaction-tool queries, and the profile reload after a save — is sent by the screen-support bursts (profile.edit.bursts.ts), composed with the app's pauses.

    The chain is EditProfileFragment:edit_profile:4:button over the profile tab, the bio editor 5 and the username editor 6.

    No screenshot: the library renders no UI.

    Guide: Profiles