From cf0951039cf414bcddf820905d2515e5c24b37b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Tue, 14 Jan 2025 15:29:09 +0100 Subject: [PATCH] Fix --- packages/reffuse/src/Reffuse.ts | 2 +- packages/reffuse/src/ReffuseReactContext.tsx | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/reffuse/src/Reffuse.ts b/packages/reffuse/src/Reffuse.ts index f09baa6..9fb7f53 100644 --- a/packages/reffuse/src/Reffuse.ts +++ b/packages/reffuse/src/Reffuse.ts @@ -19,7 +19,7 @@ export class Reffuse< ) { this.Provider = parent ? ReffuseReactContext.makeNestedProvider(runtime, this.Context, parent) - : ReffuseReactContext.makeRootProvider(runtime, this.Context) + : ReffuseReactContext.makeRootProvider(runtime, this.Context) } diff --git a/packages/reffuse/src/ReffuseReactContext.tsx b/packages/reffuse/src/ReffuseReactContext.tsx index a712014..d1bcf0e 100644 --- a/packages/reffuse/src/ReffuseReactContext.tsx +++ b/packages/reffuse/src/ReffuseReactContext.tsx @@ -24,15 +24,21 @@ export interface ProviderProps< readonly children?: React.ReactNode } -export function makeRootProvider( +export function makeRootProvider< + RuntimeR, + ContextR extends ParentContextR | OwnContextR, + OwnContextR, + ParentContextR, +>( runtime: Runtime.Runtime, ReactContext: React.Context>, -): Provider { +): Provider { return function ReffuseRootReactContextProvider(props) { const value = React.useMemo(() => ({ runtime, context: Effect.context().pipe( Effect.provide(props.layer), + Effect.provide(Context.empty() as Context.Context), // Just there for type safety. ParentContextR is always never here anyway Runtime.runSync(runtime), ), }), [props.layer])