IGPAPI
    Preparing search index...

    Function screenEdges

    • The edges of a platform's screens, typed by its screen registry: an interface that maps each ScreenId to the type of its definition (interface AndroidScreens { readonly SerpTop: typeof Serp; … }). An edge names its target by id, so a screen's type never depends on the type of the screen its edge leads to, and screens that lead to each other (a profile, a suggested user, the same profile) are declared without a cycle in their types: the registry is read only where the edge is used. The definitions themselves come from the platform's screen set at run time (screenSet(platform, { SerpTop: Serp, … }), typed by the same registry).

      Type Parameters

      • Registry

      Returns {
          opens: {
              <
                  const Id extends
                      | "FeedTimeline"
                      | "ShortUrlFeed"
                      | "ClipsViewer"
                      | "CommentsV2"
                      | "Explore"
                      | "SearchTypeahead"
                      | "SerpTop"
                      | "SerpUsers"
                      | "UserDetail"
                      | "ProfileMediaTab"
                      | "ContextualFeed"
                      | "DirectInbox"
                      | "DirectThread"
                      | "CustomizeChat"
                      | "DirectThreadThemePicker"
                      | "DirectThreadDetails"
                      | "DirectThreadSharedMedia"
                      | "DirectThreadNicknames"
                      | "DirectThreadNicknameChange"
                      | "DirectThreadCustomGroupNameAndImage",
                  State,
                  I,
              >(
                  id: Id,
                  step: (state: State) => ScreenEdgeStep<I>,
              ): (
                  self: ScreenHandle,
                  state: State,
              ) => ScreenEdgeCall<Registry[Id], [], I>;
              <
                  const Id extends
                      | "FeedTimeline"
                      | "ShortUrlFeed"
                      | "ClipsViewer"
                      | "CommentsV2"
                      | "Explore"
                      | "SearchTypeahead"
                      | "SerpTop"
                      | "SerpUsers"
                      | "UserDetail"
                      | "ProfileMediaTab"
                      | "ContextualFeed"
                      | "DirectInbox"
                      | "DirectThread"
                      | "CustomizeChat"
                      | "DirectThreadThemePicker"
                      | "DirectThreadDetails"
                      | "DirectThreadSharedMedia"
                      | "DirectThreadNicknames"
                      | "DirectThreadNicknameChange"
                      | "DirectThreadCustomGroupNameAndImage",
                  State,
                  Args extends readonly unknown[],
                  I,
              >(
                  id: Id,
                  step: (state: State, ...args: NoInfer<[...Args[]]>) => ScreenEdgeStep<I>,
                  args: ScreenCodec<Args>,
              ): (
                  self: ScreenHandle,
                  state: State,
              ) => ScreenEdgeCall<Registry[Id], Args, I>;
          };
      }

      • opens: {
            <
                const Id extends
                    | "FeedTimeline"
                    | "ShortUrlFeed"
                    | "ClipsViewer"
                    | "CommentsV2"
                    | "Explore"
                    | "SearchTypeahead"
                    | "SerpTop"
                    | "SerpUsers"
                    | "UserDetail"
                    | "ProfileMediaTab"
                    | "ContextualFeed"
                    | "DirectInbox"
                    | "DirectThread"
                    | "CustomizeChat"
                    | "DirectThreadThemePicker"
                    | "DirectThreadDetails"
                    | "DirectThreadSharedMedia"
                    | "DirectThreadNicknames"
                    | "DirectThreadNicknameChange"
                    | "DirectThreadCustomGroupNameAndImage",
                State,
                I,
            >(
                id: Id,
                step: (state: State) => ScreenEdgeStep<I>,
            ): (
                self: ScreenHandle,
                state: State,
            ) => ScreenEdgeCall<Registry[Id], [], I>;
            <
                const Id extends
                    | "FeedTimeline"
                    | "ShortUrlFeed"
                    | "ClipsViewer"
                    | "CommentsV2"
                    | "Explore"
                    | "SearchTypeahead"
                    | "SerpTop"
                    | "SerpUsers"
                    | "UserDetail"
                    | "ProfileMediaTab"
                    | "ContextualFeed"
                    | "DirectInbox"
                    | "DirectThread"
                    | "CustomizeChat"
                    | "DirectThreadThemePicker"
                    | "DirectThreadDetails"
                    | "DirectThreadSharedMedia"
                    | "DirectThreadNicknames"
                    | "DirectThreadNicknameChange"
                    | "DirectThreadCustomGroupNameAndImage",
                State,
                Args extends readonly unknown[],
                I,
            >(
                id: Id,
                step: (state: State, ...args: NoInfer<[...Args[]]>) => ScreenEdgeStep<I>,
                args: ScreenCodec<Args>,
            ): (
                self: ScreenHandle,
                state: State,
            ) => ScreenEdgeCall<Registry[Id], Args, I>;
        }