effex-monorepo
    Preparing search index...

    Variable suspenseConst

    suspense: {
        <R1 = never, RF = never>(
            options: SuspenseOptions<never, R1, RF, never> & { catch?: never },
        ): Element<DOMElement, never, SuspenseBoundaryCtx | R1 | RF>;
        <E, R1 = never, RF = never, RC = never>(
            options: SuspenseOptions<E, R1, RF, RC> & {
                catch: (error: E) => Element.Element<DOMElement, never, RC>;
            },
        ): Element<DOMElement, never, SuspenseBoundaryCtx | R1 | RF | RC>;
    } = ...

    Suspense boundary for async rendering with loading states.

    Renders the fallback while waiting for the async render to complete. Optionally delays showing the fallback to avoid loading flashes on fast responses. Optionally catches errors and renders an error state.

    The appropriate SuspenseBoundaryCtx layer (Client, SSR, Hydration) is provided automatically by mount(), hydrate(), or renderToString().

    Type Declaration

      • <R1 = never, RF = never>(
            options: SuspenseOptions<never, R1, RF, never> & { catch?: never },
        ): Element<DOMElement, never, SuspenseBoundaryCtx | R1 | RF>
      • Type Parameters

        • R1 = never
        • RF = never

        Parameters

        Returns Element<DOMElement, never, SuspenseBoundaryCtx | R1 | RF>

      • <E, R1 = never, RF = never, RC = never>(
            options: SuspenseOptions<E, R1, RF, RC> & {
                catch: (error: E) => Element.Element<DOMElement, never, RC>;
            },
        ): Element<DOMElement, never, SuspenseBoundaryCtx | R1 | RF | RC>
      • Type Parameters

        • E
        • R1 = never
        • RF = never
        • RC = never

        Parameters

        • options: SuspenseOptions<E, R1, RF, RC> & {
              catch: (error: E) => Element.Element<DOMElement, never, RC>;
          }

        Returns Element<DOMElement, never, SuspenseBoundaryCtx | R1 | RF | RC>

    // Simple - show fallback immediately
    Boundary.suspense({
    render: () => fetchAndRenderUser(userId),
    fallback: () => $.div({}, $.of("Loading...")),
    })
    // With delay - avoid loading flash on fast responses
    Boundary.suspense({
    render: () => Effect.gen(function* () {
    const user = yield* fetchUser(userId)
    return yield* UserPage({ user })
    }),
    fallback: () => $.div({}, $.of("Loading user...")),
    delay: "200 millis",
    })
    // With error handling
    Boundary.suspense({
    render: () => Effect.gen(function* () {
    const user = yield* fetchUser(userId)
    return yield* UserPage({ user })
    }),
    fallback: () => $.div({}, $.of("Loading...")),
    catch: (error) => $.div({}, $.of(`Error: ${String(error)}`)),
    delay: "200 millis",
    })