IGPAPI
    Preparing search index...

    Function openAppOf

    • The platform's app process entry over one launch declaration: OpenApp(input) at the edge, where input is the declaration's launch input. The declaration is installed by the platform and read here; a platform that has none yet passes undefined, which the first overload types without erasing anything — the declared overload is read from declareLaunch's inference, so a real declaration always brings its screen's data, actions and services and its burst's.

      A logged-out process is LoggedOut straight away and sends nothing (the session scope is the one derivation of "a user session exists"). A logged-in one needs the platform's launch declaration first — known before any request, so a missing one is ScreenLaunchNotDeclaredError with nothing sent — and the declaration's screen must be in the runtime's screen set (ScreenLaunchScreenNotInCatalogError). A process the entry already started is AppAlreadyStartedError; a launch that runs meanwhile is ScreenEnterConcurrentError. All refuse before touching the process.

      The rest is one transition and one transaction on the process stack: the session navigation starts (BeginSessionNavigation, so the first screen's navigate takes ordinal 1; the screen in front stays — a new process has none, and a process that just logged in keeps the screen the user logged in from until the first screen comes, as the Android 448 recording shows), the declaration's burst runs — the first screen opens through the core launch edge (enterRoot) at its firstScreen mark — and the launch flag is set. A failed launch restores the navigation and the stack it found (root included) and what was sent stays sent. The launch flag is set at the mark, after the first screen entered: a burst failing before the mark leaves the process unlaunched and a retry is allowed, one failing after it is refused on the next call with AppAlreadyStartedError; a refused one changed nothing.

      Parameters

      • launch: undefined

      Returns (
          input: undefined,
      ) => Effect<
          OpenAppResult<ScreenFrameHandle, undefined>,
          ScreenEnterConcurrentError | EntryRefusals,
          EntryServices,
      >

    • The platform's app process entry over one launch declaration: OpenApp(input) at the edge, where input is the declaration's launch input. The declaration is installed by the platform and read here; a platform that has none yet passes undefined, which the first overload types without erasing anything — the declared overload is read from declareLaunch's inference, so a real declaration always brings its screen's data, actions and services and its burst's.

      A logged-out process is LoggedOut straight away and sends nothing (the session scope is the one derivation of "a user session exists"). A logged-in one needs the platform's launch declaration first — known before any request, so a missing one is ScreenLaunchNotDeclaredError with nothing sent — and the declaration's screen must be in the runtime's screen set (ScreenLaunchScreenNotInCatalogError). A process the entry already started is AppAlreadyStartedError; a launch that runs meanwhile is ScreenEnterConcurrentError. All refuse before touching the process.

      The rest is one transition and one transaction on the process stack: the session navigation starts (BeginSessionNavigation, so the first screen's navigate takes ordinal 1; the screen in front stays — a new process has none, and a process that just logged in keeps the screen the user logged in from until the first screen comes, as the Android 448 recording shows), the declaration's burst runs — the first screen opens through the core launch edge (enterRoot) at its firstScreen mark — and the launch flag is set. A failed launch restores the navigation and the stack it found (root included) and what was sent stays sent. The launch flag is set at the mark, after the first screen entered: a burst failing before the mark leaves the process unlaunched and a retry is allowed, one failing after it is refused on the next call with AppAlreadyStartedError; a refused one changed nothing.

      Type Parameters

      • Id extends
            | "FeedTimeline"
            | "ShortUrlFeed"
            | "ClipsViewer"
            | "CommentsV2"
            | "Explore"
            | "SearchTypeahead"
            | "SerpTop"
            | "SerpUsers"
            | "UserDetail"
            | "ProfileMediaTab"
            | "ContextualFeed"
            | "DirectInbox"
            | "DirectThread"
            | "CustomizeChat"
            | "DirectThreadThemePicker"
            | "DirectThreadDetails"
            | "DirectThreadSharedMedia"
            | "DirectThreadNicknames"
            | "DirectThreadNicknameChange"
      • Kind extends EnterableScreenKind
      • Input
      • Data extends object
      • State
      • E
      • R
      • Actions extends object
      • Items extends object
      • LaunchInput
      • BE
      • BR

      Parameters

      Returns (
          input: LaunchInput,
      ) => Effect<
          OpenAppResult<
              AssembledHandle<Id, Kind, Data, Actions, Items, undefined>,
              LaunchInput,
          >,

              | ScreenEnterConcurrentError
              | ScreenLaunchFirstScreenError
              | BE
              | EntryRefusals,
          BR
          | EntryServices,
      >