diff --git a/packages/example/src/routes/lazyref.tsx b/packages/example/src/routes/lazyref.tsx index 32d8187..67657a7 100644 --- a/packages/example/src/routes/lazyref.tsx +++ b/packages/example/src/routes/lazyref.tsx @@ -10,7 +10,7 @@ export const Route = createFileRoute("/lazyref")({ }) function RouteComponent() { - const promise = R.usePromise(() => LazyRef.of(0)) + const promise = R.usePromise(() => LazyRef.of(0), []) return ( Loading...}> diff --git a/packages/example/src/routes/promise.tsx b/packages/example/src/routes/promise.tsx index 09af62a..4b197cf 100644 --- a/packages/example/src/routes/promise.tsx +++ b/packages/example/src/routes/promise.tsx @@ -20,7 +20,7 @@ function RouteComponent() { HttpClient.withTracerPropagation(false), Effect.flatMap(res => res.json), Effect.flatMap(Schema.decodeUnknown(Result)), - )) + ), []) return ( Loading...}> diff --git a/packages/example/src/routes/tests.tsx b/packages/example/src/routes/tests.tsx index bb58968..93e791e 100644 --- a/packages/example/src/routes/tests.tsx +++ b/packages/example/src/routes/tests.tsx @@ -18,11 +18,11 @@ function RouteComponent() { R.useFork(() => Effect.addFinalizer(() => Console.log("cleanup")).pipe( Effect.andThen(Console.log("ouient")), Effect.delay("1 second"), - )) + ), []) const logValue = R.useCallbackSync(Effect.fn(function*(value: string) { yield* Effect.log(value) - })) + }), []) return ( diff --git a/packages/example/src/routes/time.tsx b/packages/example/src/routes/time.tsx index f99f979..99e7e39 100644 --- a/packages/example/src/routes/time.tsx +++ b/packages/example/src/routes/time.tsx @@ -15,7 +15,7 @@ export const Route = createFileRoute("/time")({ function Time() { - const timeRef = R.useMemo(() => DateTime.now.pipe(Effect.flatMap(SubscriptionRef.make))) + const timeRef = R.useMemo(() => DateTime.now.pipe(Effect.flatMap(SubscriptionRef.make)), []) R.useFork(() => Effect.addFinalizer(() => Console.log("Cleanup")).pipe( Effect.andThen(Stream.runForEach(timeEverySecond, v => Ref.set(timeRef, v))) diff --git a/packages/example/src/todos/views/VNewTodo.tsx b/packages/example/src/todos/views/VNewTodo.tsx index 2328006..67e4088 100644 --- a/packages/example/src/todos/views/VNewTodo.tsx +++ b/packages/example/src/todos/views/VNewTodo.tsx @@ -18,7 +18,7 @@ export function VNewTodo() { const runSync = R.useRunSync() - const todoRef = R.useMemo(() => createEmptyTodo.pipe(Effect.flatMap(SubscriptionRef.make))) + const todoRef = R.useMemo(() => createEmptyTodo.pipe(Effect.flatMap(SubscriptionRef.make)), []) const [todo, setTodo] = R.useRefState(todoRef) diff --git a/packages/example/src/todos/views/VTodos.tsx b/packages/example/src/todos/views/VTodos.tsx index 83485b0..27229aa 100644 --- a/packages/example/src/todos/views/VTodos.tsx +++ b/packages/example/src/todos/views/VTodos.tsx @@ -13,9 +13,9 @@ export function VTodos() { Effect.flatMap(state => Stream.runForEach(state.todos.changes, () => state.saveToLocalStorage) ) - )) + ), []) - const todosRef = R.useMemo(() => TodosState.TodosState.pipe(Effect.map(state => state.todos))) + const todosRef = R.useMemo(() => TodosState.TodosState.pipe(Effect.map(state => state.todos)), []) const [todos] = R.useRefState(todosRef) diff --git a/packages/reffuse/src/ReffuseHelpers.ts b/packages/reffuse/src/ReffuseHelpers.ts index ef94f2d..cd48191 100644 --- a/packages/reffuse/src/ReffuseHelpers.ts +++ b/packages/reffuse/src/ReffuseHelpers.ts @@ -85,21 +85,21 @@ export abstract class ReffuseHelpers { useMemo( this: ReffuseHelpers, effect: () => Effect.Effect, - deps?: React.DependencyList, + deps: React.DependencyList, options?: RenderOptions, ): A { const runSync = this.useRunSync() return React.useMemo(() => runSync(effect()), [ ...options?.doNotReExecuteOnRuntimeOrContextChange ? [] : [runSync], - ...(deps ?? []), + ...deps, ]) } useMemoScoped( this: ReffuseHelpers, effect: () => Effect.Effect, - deps?: React.DependencyList, + deps: React.DependencyList, options?: RenderOptions & ScopeOptions, ): A { const runSync = this.useRunSync() @@ -140,7 +140,7 @@ export abstract class ReffuseHelpers { return () => { runSync(Scope.close(scope, Exit.void)) } }, [ ...options?.doNotReExecuteOnRuntimeOrContextChange ? [] : [runSync], - ...(deps ?? []), + ...deps, ]) return value @@ -187,9 +187,9 @@ export abstract class ReffuseHelpers { ) return () => { runSync(Scope.close(scope, Exit.void)) } - }, [ + }, deps && [ ...options?.doNotReExecuteOnRuntimeOrContextChange ? [] : [runSync], - ...(deps ?? []), + ...deps, ]) } @@ -235,9 +235,9 @@ export abstract class ReffuseHelpers { ) return () => { runSync(Scope.close(scope, Exit.void)) } - }, [ + }, deps && [ ...options?.doNotReExecuteOnRuntimeOrContextChange ? [] : [runSync], - ...(deps ?? []), + ...deps, ]) } @@ -285,9 +285,9 @@ export abstract class ReffuseHelpers { runFork(Effect.provideService(effect(), Scope.Scope, scope), { ...options, scope }) return () => { runFork(Scope.close(scope, Exit.void)) } - }, [ - ...options?.doNotReExecuteOnRuntimeOrContextChange ? [] : [runSync, runFork], - ...(deps ?? []), + }, deps && [ + ...options?.doNotReExecuteOnRuntimeOrContextChange ? [] : [runSync], + ...deps, ]) } @@ -330,9 +330,9 @@ export abstract class ReffuseHelpers { cleanup() } - }, [ - ...options?.doNotReExecuteOnRuntimeOrContextChange ? [] : [runSync, runFork], - ...(deps ?? []), + }, deps && [ + ...options?.doNotReExecuteOnRuntimeOrContextChange ? [] : [runSync], + ...deps, ]) return value @@ -341,28 +341,28 @@ export abstract class ReffuseHelpers { useCallbackSync( this: ReffuseHelpers, callback: (...args: Args) => Effect.Effect, - deps?: React.DependencyList, + deps: React.DependencyList, options?: RenderOptions, ): (...args: Args) => A { const runSync = this.useRunSync() return React.useCallback((...args) => runSync(callback(...args)), [ ...options?.doNotReExecuteOnRuntimeOrContextChange ? [] : [runSync], - ...(deps ?? []), + ...deps, ]) } useCallbackPromise( this: ReffuseHelpers, callback: (...args: Args) => Effect.Effect, - deps?: React.DependencyList, + deps: React.DependencyList, options?: { readonly signal?: AbortSignal } & RenderOptions, ): (...args: Args) => Promise { const runPromise = this.useRunPromise() return React.useCallback((...args) => runPromise(callback(...args), options), [ ...options?.doNotReExecuteOnRuntimeOrContextChange ? [] : [runPromise], - ...(deps ?? []), + ...deps, ]) }