@reffuse/extension-query 0.1.4 #15

Merged
Thilawyn merged 340 commits from next into master 2025-05-26 04:15:01 +02:00
Showing only changes of commit 529e3d3f9d - Show all commits

View File

@@ -382,6 +382,18 @@ export abstract class ReffuseHelpers<R> {
)
}
useSubscribeRefs<
const Refs extends readonly SubscriptionRef.SubscriptionRef<any>[],
R,
>(
this: ReffuseHelpers<R>,
...refs: Refs
): [...{ [K in keyof Refs]: Effect.Effect.Success<Refs[K]> }] {
const [reactStateValue, setReactStateValue] = React.useState(
this.useMemo(() => Effect.all(refs), [], { doNotReExecuteOnRuntimeOrContextChange: true })
)
}
/**
* Binds the state of a `SubscriptionRef` to the state of the React component.
*
@@ -410,43 +422,6 @@ export abstract class ReffuseHelpers<R> {
return [reactStateValue, setValue]
}
useRefsState<
const Refs extends { readonly [K in keyof Refs]: SubscriptionRef.SubscriptionRef<any> },
R,
>(
this: ReffuseHelpers<R>,
refs: Refs,
): {
readonly [K in keyof Refs]: readonly [
Effect.Effect.Success<Refs[K]>,
React.Dispatch<React.SetStateAction<Effect.Effect.Success<Refs[K]>>>,
]
} {
const [reactStateValue, setReactStateValue] = React.useState(
this.useMemo(() => Effect.Do.pipe(
Effect.bindAll(() => refs as Record<string, SubscriptionRef.SubscriptionRef<any>>)
), [], {
doNotReExecuteOnRuntimeOrContextChange: true
}) as { readonly [K in keyof Refs]: any }
)
this.useFork(() => )
// this.useFork(() => Stream.runForEach(
// Stream.changesWith(ref.changes, (x, y) => x === y),
// v => Effect.sync(() => setReactStateValue(v)),
// ), [ref])
// const setValue = this.useCallbackSync((setStateAction: React.SetStateAction<A>) =>
// Ref.update(ref, prevState =>
// SetStateAction.value(setStateAction, prevState)
// ),
// [ref])
// return [reactStateValue, setValue]
return null!
}
useStreamFromValues<const A extends React.DependencyList, R>(
this: ReffuseHelpers<R>,
values: A,