@@ -1,5 +1,5 @@
|
|||||||
import * as AsyncData from "@typed/async-data"
|
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 * as React from "react"
|
||||||
import { SetStateAction } from "./types/index.js"
|
import { SetStateAction } from "./types/index.js"
|
||||||
|
|
||||||
@@ -241,7 +241,7 @@ export const useSubscribeRefs: {
|
|||||||
))
|
))
|
||||||
|
|
||||||
yield* useFork(() => pipe(
|
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),
|
streams => Stream.zipLatestAll(...streams),
|
||||||
Stream.runForEach(v =>
|
Stream.runForEach(v =>
|
||||||
Effect.sync(() => setReactStateValue(v))
|
Effect.sync(() => setReactStateValue(v))
|
||||||
@@ -259,7 +259,7 @@ export const useRefState: {
|
|||||||
const [reactStateValue, setReactStateValue] = React.useState(yield* useOnce(() => ref))
|
const [reactStateValue, setReactStateValue] = React.useState(yield* useOnce(() => ref))
|
||||||
|
|
||||||
yield* useFork(() => Stream.runForEach(
|
yield* useFork(() => Stream.runForEach(
|
||||||
Stream.changesWith(ref.changes, (x, y) => x === y),
|
Stream.changesWith(ref.changes, Equivalence.strict()),
|
||||||
v => Effect.sync(() => setReactStateValue(v)),
|
v => Effect.sync(() => setReactStateValue(v)),
|
||||||
), [ref])
|
), [ref])
|
||||||
|
|
||||||
@@ -318,7 +318,7 @@ export const useSubscribeStream: {
|
|||||||
)
|
)
|
||||||
|
|
||||||
yield* useFork(() => Stream.runForEach(
|
yield* useFork(() => Stream.runForEach(
|
||||||
Stream.changesWith(stream, (x, y) => x === y),
|
Stream.changesWith(stream, Equivalence.strict()),
|
||||||
v => Effect.sync(() => setReactStateValue(Option.some(v))),
|
v => Effect.sync(() => setReactStateValue(Option.some(v))),
|
||||||
), [stream])
|
), [stream])
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user