diff --git a/packages/effect-fc/src/Hook.ts b/packages/effect-fc/src/Hook.ts index 759cce0..67b58ae 100644 --- a/packages/effect-fc/src/Hook.ts +++ b/packages/effect-fc/src/Hook.ts @@ -1,5 +1,5 @@ import * as AsyncData from "@typed/async-data" -import { type Context, Effect, ExecutionStrategy, Exit, type Layer, Option, pipe, PubSub, Ref, Runtime, Scope, Stream, SubscriptionRef } from "effect" +import { type Context, Effect, Equivalence, ExecutionStrategy, Exit, type Layer, Option, pipe, PubSub, Ref, Runtime, Scope, Stream, SubscriptionRef } from "effect" import * as React from "react" import { SetStateAction } from "./types/index.js" @@ -241,7 +241,7 @@ export const useSubscribeRefs: { )) yield* useFork(() => pipe( - refs.map(ref => Stream.changesWith(ref.changes, (x, y) => x === y)), + refs.map(ref => Stream.changesWith(ref.changes, Equivalence.strict())), streams => Stream.zipLatestAll(...streams), Stream.runForEach(v => Effect.sync(() => setReactStateValue(v)) @@ -259,7 +259,7 @@ export const useRefState: { const [reactStateValue, setReactStateValue] = React.useState(yield* useOnce(() => ref)) yield* useFork(() => Stream.runForEach( - Stream.changesWith(ref.changes, (x, y) => x === y), + Stream.changesWith(ref.changes, Equivalence.strict()), v => Effect.sync(() => setReactStateValue(v)), ), [ref]) @@ -318,7 +318,7 @@ export const useSubscribeStream: { ) yield* useFork(() => Stream.runForEach( - Stream.changesWith(stream, (x, y) => x === y), + Stream.changesWith(stream, Equivalence.strict()), v => Effect.sync(() => setReactStateValue(Option.some(v))), ), [stream])