diff --git a/packages/reffuse/src/Reffuse.ts b/packages/reffuse/src/Reffuse.ts index e30a56d..0f9acdc 100644 --- a/packages/reffuse/src/Reffuse.ts +++ b/packages/reffuse/src/Reffuse.ts @@ -226,44 +226,18 @@ export class Reffuse { ]) } - // useSuspense( - // effect: Effect.Effect, - // deps?: React.DependencyList, - // options?: { readonly signal?: AbortSignal } & RenderOptions, - // ): A { - // const runPromise = this.useRunPromise() - - // const promise = React.useMemo(() => runPromise(effect, options), [ - // ...options?.doNotReExecuteOnRuntimeOrContextChange ? [] : [runPromise], - // ...(deps ?? []), - // ]) - // return React.use(promise) - // } - useSuspense( effect: Effect.Effect, deps?: React.DependencyList, - options?: RenderOptions, + options?: { readonly signal?: AbortSignal } & RenderOptions, ): A { - const runSync = this.useRunPromise() - const runCallback = this.useRunCallback() + const runPromise = this.useRunPromise() - const promiseRef = React.useRef(Promise.withResolvers().promise) - - React.useEffect(() => { - const { promise, resolve, reject } = Promise.withResolvers() - promiseRef.current = promise - - runCallback(effect, { - onExit: Exit.mapBoth({ - onSuccess: resolve, - onFailure: reject, - }) - }) - }, deps) - - console.log(promiseRef.current) - return React.use(promiseRef.current) + const promise = React.useMemo(() => runPromise(effect, options), [ + ...options?.doNotReExecuteOnRuntimeOrContextChange ? [] : [runPromise], + ...(deps ?? []), + ]) + return React.use(promise) } /**