diff --git a/packages/reffuse/src/ReffuseNamespace.ts b/packages/reffuse/src/ReffuseNamespace.ts index d3c4e0b..9de86e3 100644 --- a/packages/reffuse/src/ReffuseNamespace.ts +++ b/packages/reffuse/src/ReffuseNamespace.ts @@ -14,7 +14,7 @@ export interface ScopeOptions { readonly finalizerExecutionStrategy?: ExecutionStrategy.ExecutionStrategy } -export interface UseScopeOptions extends ScopeOptions { +export interface UseScopeOptions extends RenderOptions, ScopeOptions { readonly finalizerExecutionMode?: "sync" | "fork" } @@ -102,7 +102,7 @@ export abstract class ReffuseNamespace { const [isInitialRun, initialScope] = React.useMemo(() => runSync(Effect.all([ Ref.make(true), - Scope.make(options?.finalizerExecutionStrategy), + Scope.make(options?.finalizerExecutionStrategy ?? ExecutionStrategy.sequential), ])), []) const [scope, setScope] = React.useState(initialScope) @@ -133,7 +133,10 @@ export abstract class ReffuseNamespace { }), runSync, - ), [runSync, runFork, ...deps]) + ), [ + ...options?.doNotReExecuteOnRuntimeOrContextChange ? [] : [runSync, runFork], + ...deps, + ]) return scope }