0.1.11 #14

Merged
Thilawyn merged 318 commits from next into master 2025-05-19 14:01:41 +02:00
6 changed files with 20 additions and 20 deletions
Showing only changes of commit d5ac84b2cc - Show all commits

View File

@@ -1,6 +1,6 @@
import { R } from "@/reffuse"
import { createFileRoute } from "@tanstack/react-router"
import { Ref } from "effect"
import { Effect, Ref } from "effect"
export const Route = createFileRoute("/count")({
@@ -11,7 +11,7 @@ function Count() {
const runSync = R.useRunSync()
const countRef = R.useRef(0)
const countRef = R.useRef(() => Effect.succeed(0))
const [count] = R.useRefState(countRef)

View File

@@ -14,7 +14,7 @@ export const Route = createFileRoute("/query/service")({
function RouteComponent() {
const query = R.useQuery({
key: R.useStreamFromValues(["uuid4", 10 as number]),
key: R.useStreamFromReactiveValues(["uuid4", 10 as number]),
query: ([, count]) => Console.log(`Querying ${ count } IDs...`).pipe(
Effect.andThen(Effect.sleep("500 millis")),
Effect.andThen(HttpClient.get(`https://www.uuidtools.com/api/generate/v4/count/${ count }`)),

View File

@@ -20,7 +20,7 @@ function RouteComponent() {
const [count, setCount] = useState(1)
const query = R.useQuery({
key: R.useStreamFromValues(["uuid4", count]),
key: R.useStreamFromReactiveValues(["uuid4", count]),
query: ([, count]) => Console.log(`Querying ${ count } IDs...`).pipe(
Effect.andThen(Effect.sleep("500 millis")),
Effect.andThen(HttpClient.get(`https://www.uuidtools.com/api/generate/v4/count/${ count }`)),

View File

@@ -10,7 +10,7 @@ export const Route = createFileRoute("/tests")({
})
function RouteComponent() {
const deepRef = R.useRef({ value: "poulet" })
const deepRef = R.useRef(() => Effect.succeed({ value: "poulet" }))
const deepValueRef = R.useSubRef(deepRef, ["value"])
// const value = R.useMemoScoped(Effect.addFinalizer(() => Console.log("cleanup")).pipe(
@@ -25,8 +25,8 @@ function RouteComponent() {
), [])
const uuidRef = R.useRef("none")
const anotherRef = R.useRef(69)
const uuidRef = R.useRef(() => Effect.succeed("none"))
const anotherRef = R.useRef(() => Effect.succeed(69))
const logValue = R.useCallbackSync(Effect.fn(function*(value: string) {

View File

@@ -16,7 +16,7 @@ export function VTodos() {
), [])
const todosRef = R.useMemo(() => TodosState.TodosState.pipe(Effect.map(state => state.todos)), [])
const [todos] = R.useRefState(todosRef)
const [todos] = R.useSubscribeRefs(todosRef)
return (

View File

@@ -523,19 +523,19 @@ export abstract class ReffuseNamespace<R> {
return reactStateValue as InitialA extends A ? Option.Some<A> : Option.Option<A>
}
usePullStream<A, InitialA extends A | undefined, E, R>(
this: ReffuseNamespace<R>,
stream: Stream.Stream<A, E, R>,
initialValue?: InitialA,
): [
latestValue: InitialA extends A ? Option.Some<A> : Option.Option<A>,
pull: () => void,
] {
const [reactStateValue, setReactStateValue] = React.useState<Option.Option<A>>(Option.fromNullable(initialValue))
const pull = this.useMemo(() => Stream.toPull(stream), [stream])
// usePullStream<A, InitialA extends A | undefined, E, R>(
// this: ReffuseNamespace<R>,
// stream: Stream.Stream<A, E, R>,
// initialValue?: InitialA,
// ): [
// latestValue: InitialA extends A ? Option.Some<A> : Option.Option<A>,
// pull: () => void,
// ] {
// const [reactStateValue, setReactStateValue] = React.useState<Option.Option<A>>(Option.fromNullable(initialValue))
// const pull = this.useMemo(() => Stream.toPull(stream), [stream])
return reactStateValue as InitialA extends A ? Option.Some<A> : Option.Option<A>
}
// return reactStateValue as InitialA extends A ? Option.Some<A> : Option.Option<A>
// }
SubRef<B, const P extends PropertyPath.Paths<B>, R>(