Skip to content

Commit d896dfd

Browse files
evelantdatner
authored andcommitted
Add makeFromRuntime and makeFromRuntimeContext
Move RuntimeProvider.tsx to RuntimeProvider.ts because the .tsx extension broke linting.
1 parent 024ce51 commit d896dfd

File tree

2 files changed

+28
-1
lines changed

2 files changed

+28
-1
lines changed

.changeset/six-dogs-listen.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"effect-react": patch
3+
---
4+
5+
Add makeFromRuntime and makeFromRuntimeContext constructors to RuntimeProvider

src/RuntimeProvider.tsx renamed to src/RuntimeProvider.ts

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ import * as Effect from "@effect/io/Effect"
44
import * as Layer from "@effect/io/Layer"
55
import type * as Runtime from "@effect/io/Runtime"
66
import * as Scope from "@effect/io/Scope"
7-
import { createContext } from "react"
87
import type { UseResult } from "effect-react/hooks/useResult"
98
import { makeUseResult } from "effect-react/hooks/useResult"
109
import type { UseResultCallback } from "effect-react/hooks/useResultCallback"
1110
import { makeUseResultCallback } from "effect-react/hooks/useResultCallback"
11+
import { createContext } from "react"
1212

1313
export { RuntimeContext } from "effect-react/internal/runtimeContext"
1414

@@ -37,3 +37,25 @@ export const makeFromLayer = <R, E>(
3737
useResult: makeUseResult(RuntimeContext)
3838
}
3939
}
40+
41+
export const makeFromRuntime = <R>(
42+
runtime: Runtime.Runtime<R>
43+
): ReactEffectBag<R> => {
44+
const RuntimeContext = createContext(runtime)
45+
46+
return {
47+
RuntimeContext,
48+
useResultCallback: makeUseResultCallback(RuntimeContext),
49+
useResult: makeUseResult(RuntimeContext)
50+
}
51+
}
52+
53+
export const makeFromRuntimeContext = <R>(
54+
RuntimeContext: React.Context<Runtime.Runtime<R>>
55+
): ReactEffectBag<R> => {
56+
return {
57+
RuntimeContext,
58+
useResultCallback: makeUseResultCallback(RuntimeContext),
59+
useResult: makeUseResult(RuntimeContext)
60+
}
61+
}

0 commit comments

Comments
 (0)