0.1.3 #4
@@ -34,7 +34,7 @@ const ComponentProto = Object.freeze({
|
|||||||
...Effectable.CommitPrototype,
|
...Effectable.CommitPrototype,
|
||||||
[TypeId]: TypeId,
|
[TypeId]: TypeId,
|
||||||
|
|
||||||
commit: Effect.fn("Component")(function* <P extends {}, E, R>(this: Component<P, E, R>) {
|
commit: Effect.fnUntraced(function* <P extends {}, E, R>(this: Component<P, E, R>) {
|
||||||
const self = this
|
const self = this
|
||||||
const runtimeRef = React.useRef<Runtime.Runtime<Exclude<R, Scope.Scope>>>(null!)
|
const runtimeRef = React.useRef<Runtime.Runtime<Exclude<R, Scope.Scope>>>(null!)
|
||||||
runtimeRef.current = yield* Effect.runtime<Exclude<R, Scope.Scope>>()
|
runtimeRef.current = yield* Effect.runtime<Exclude<R, Scope.Scope>>()
|
||||||
|
|||||||
@@ -11,6 +11,8 @@ export const useCallbackPromise: {
|
|||||||
callback: (...args: Args) => Effect.Effect<A, E, R>,
|
callback: (...args: Args) => Effect.Effect<A, E, R>,
|
||||||
deps: React.DependencyList,
|
deps: React.DependencyList,
|
||||||
) {
|
) {
|
||||||
const runtime = yield* Effect.runtime<R>()
|
const runtimeRef = React.useRef<Runtime.Runtime<R>>(null!)
|
||||||
return React.useCallback((...args: Args) => Runtime.runPromise(runtime)(callback(...args)), deps)
|
runtimeRef.current = yield* Effect.runtime<R>()
|
||||||
|
|
||||||
|
return React.useCallback((...args: Args) => Runtime.runPromise(runtimeRef.current)(callback(...args)), deps)
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -11,6 +11,8 @@ export const useCallbackSync: {
|
|||||||
callback: (...args: Args) => Effect.Effect<A, E, R>,
|
callback: (...args: Args) => Effect.Effect<A, E, R>,
|
||||||
deps: React.DependencyList,
|
deps: React.DependencyList,
|
||||||
) {
|
) {
|
||||||
const runtime = yield* Effect.runtime<R>()
|
const runtimeRef = React.useRef<Runtime.Runtime<R>>(null!)
|
||||||
return React.useCallback((...args: Args) => Runtime.runSync(runtime)(callback(...args)), deps)
|
runtimeRef.current = yield* Effect.runtime<R>()
|
||||||
|
|
||||||
|
return React.useCallback((...args: Args) => Runtime.runSync(runtimeRef.current)(callback(...args)), deps)
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user