From 5f455295ada94204154c15340a8d9cf6f7c8d705 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Fri, 10 Jan 2025 22:34:53 +0100 Subject: [PATCH] Tests --- packages/example/src/App.tsx | 9 +++++++-- packages/reffuse/src/Reffuse.tsx | 12 ++++++------ 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/packages/example/src/App.tsx b/packages/example/src/App.tsx index 268e5b5..f7ec0ee 100644 --- a/packages/example/src/App.tsx +++ b/packages/example/src/App.tsx @@ -1,3 +1,4 @@ +import { Ref } from "effect" import "./App.css" import reactLogo from "./assets/react.svg" import { Reffuse } from "./Reffuse" @@ -6,7 +7,10 @@ import viteLogo from "/vite.svg" export function App() { - const [count, setCount] = Reffuse.useRefState(Reffuse.useRef(0)) + const runtime = Reffuse.useRuntime() + + const countRef = Reffuse.useRef(0) + const [count] = Reffuse.useRefState(countRef) return <> @@ -20,7 +24,8 @@ export function App() {

Vite + React

-

diff --git a/packages/reffuse/src/Reffuse.tsx b/packages/reffuse/src/Reffuse.tsx index 0c1f6f8..7038090 100644 --- a/packages/reffuse/src/Reffuse.tsx +++ b/packages/reffuse/src/Reffuse.tsx @@ -26,29 +26,29 @@ export class Reffuse { } - runSync(effect: Effect.Effect): A { + useRunSync(effect: Effect.Effect): A { return this.useRuntime().runSync(effect) } - runSyncExit(effect: Effect.Effect): Exit.Exit { + useRunSyncExit(effect: Effect.Effect): Exit.Exit { return this.useRuntime().runSyncExit(effect) } - runPromise( + useRunPromise( effect: Effect.Effect, options?: { readonly signal?: AbortSignal }, ): Promise { return this.useRuntime().runPromise(effect, options) } - runPromiseExit( + useRunPromiseExit( effect: Effect.Effect, options?: { readonly signal?: AbortSignal }, ): Promise> { return this.useRuntime().runPromiseExit(effect, options) } - runFork( + useRunFork( self: Effect.Effect, options?: Runtime.RunForkOptions, ): Fiber.RuntimeFiber { @@ -66,7 +66,7 @@ export class Reffuse { return React.useEffect(() => { const fiber = runtime.runFork(self.pipe(Effect.scoped), options) return () => { runtime.runFork(Fiber.interrupt(fiber)) } - }, deps) + }, [runtime, ...deps ?? []]) }