0.1.11 #14

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

View File

@@ -10,7 +10,7 @@ export const Route = createFileRoute("/lazyref")({
})
function RouteComponent() {
const promise = R.usePromise(() => LazyRef.of(0))
const promise = R.usePromise(() => LazyRef.of(0), [])
return (
<Suspense fallback={<Text>Loading...</Text>}>

View File

@@ -20,7 +20,7 @@ function RouteComponent() {
HttpClient.withTracerPropagation(false),
Effect.flatMap(res => res.json),
Effect.flatMap(Schema.decodeUnknown(Result)),
))
), [])
return (
<Suspense fallback={<Text>Loading...</Text>}>

View File

@@ -18,11 +18,11 @@ function RouteComponent() {
R.useFork(() => Effect.addFinalizer(() => Console.log("cleanup")).pipe(
Effect.andThen(Console.log("ouient")),
Effect.delay("1 second"),
))
), [])
const logValue = R.useCallbackSync(Effect.fn(function*(value: string) {
yield* Effect.log(value)
}))
}), [])
return (

View File

@@ -15,7 +15,7 @@ export const Route = createFileRoute("/time")({
function Time() {
const timeRef = R.useMemo(() => DateTime.now.pipe(Effect.flatMap(SubscriptionRef.make)))
const timeRef = R.useMemo(() => DateTime.now.pipe(Effect.flatMap(SubscriptionRef.make)), [])
R.useFork(() => Effect.addFinalizer(() => Console.log("Cleanup")).pipe(
Effect.andThen(Stream.runForEach(timeEverySecond, v => Ref.set(timeRef, v)))

View File

@@ -18,7 +18,7 @@ export function VNewTodo() {
const runSync = R.useRunSync()
const todoRef = R.useMemo(() => createEmptyTodo.pipe(Effect.flatMap(SubscriptionRef.make)))
const todoRef = R.useMemo(() => createEmptyTodo.pipe(Effect.flatMap(SubscriptionRef.make)), [])
const [todo, setTodo] = R.useRefState(todoRef)

View File

@@ -13,9 +13,9 @@ export function VTodos() {
Effect.flatMap(state =>
Stream.runForEach(state.todos.changes, () => state.saveToLocalStorage)
)
))
), [])
const todosRef = R.useMemo(() => TodosState.TodosState.pipe(Effect.map(state => state.todos)))
const todosRef = R.useMemo(() => TodosState.TodosState.pipe(Effect.map(state => state.todos)), [])
const [todos] = R.useRefState(todosRef)

View File

@@ -85,21 +85,21 @@ export abstract class ReffuseHelpers<R> {
useMemo<A, E, R>(
this: ReffuseHelpers<R>,
effect: () => Effect.Effect<A, E, R>,
deps?: React.DependencyList,
deps: React.DependencyList,
options?: RenderOptions,
): A {
const runSync = this.useRunSync()
return React.useMemo(() => runSync(effect()), [
...options?.doNotReExecuteOnRuntimeOrContextChange ? [] : [runSync],
...(deps ?? []),
...deps,
])
}
useMemoScoped<A, E, R>(
this: ReffuseHelpers<R>,
effect: () => Effect.Effect<A, E, R | Scope.Scope>,
deps?: React.DependencyList,
deps: React.DependencyList,
options?: RenderOptions & ScopeOptions,
): A {
const runSync = this.useRunSync()
@@ -140,7 +140,7 @@ export abstract class ReffuseHelpers<R> {
return () => { runSync(Scope.close(scope, Exit.void)) }
}, [
...options?.doNotReExecuteOnRuntimeOrContextChange ? [] : [runSync],
...(deps ?? []),
...deps,
])
return value
@@ -187,9 +187,9 @@ export abstract class ReffuseHelpers<R> {
)
return () => { runSync(Scope.close(scope, Exit.void)) }
}, [
}, deps && [
...options?.doNotReExecuteOnRuntimeOrContextChange ? [] : [runSync],
...(deps ?? []),
...deps,
])
}
@@ -235,9 +235,9 @@ export abstract class ReffuseHelpers<R> {
)
return () => { runSync(Scope.close(scope, Exit.void)) }
}, [
}, deps && [
...options?.doNotReExecuteOnRuntimeOrContextChange ? [] : [runSync],
...(deps ?? []),
...deps,
])
}
@@ -285,9 +285,9 @@ export abstract class ReffuseHelpers<R> {
runFork(Effect.provideService(effect(), Scope.Scope, scope), { ...options, scope })
return () => { runFork(Scope.close(scope, Exit.void)) }
}, [
...options?.doNotReExecuteOnRuntimeOrContextChange ? [] : [runSync, runFork],
...(deps ?? []),
}, deps && [
...options?.doNotReExecuteOnRuntimeOrContextChange ? [] : [runSync],
...deps,
])
}
@@ -330,9 +330,9 @@ export abstract class ReffuseHelpers<R> {
cleanup()
}
}, [
...options?.doNotReExecuteOnRuntimeOrContextChange ? [] : [runSync, runFork],
...(deps ?? []),
}, deps && [
...options?.doNotReExecuteOnRuntimeOrContextChange ? [] : [runSync],
...deps,
])
return value
@@ -341,28 +341,28 @@ export abstract class ReffuseHelpers<R> {
useCallbackSync<Args extends unknown[], A, E, R>(
this: ReffuseHelpers<R>,
callback: (...args: Args) => Effect.Effect<A, E, R>,
deps?: React.DependencyList,
deps: React.DependencyList,
options?: RenderOptions,
): (...args: Args) => A {
const runSync = this.useRunSync()
return React.useCallback((...args) => runSync(callback(...args)), [
...options?.doNotReExecuteOnRuntimeOrContextChange ? [] : [runSync],
...(deps ?? []),
...deps,
])
}
useCallbackPromise<Args extends unknown[], A, E, R>(
this: ReffuseHelpers<R>,
callback: (...args: Args) => Effect.Effect<A, E, R>,
deps?: React.DependencyList,
deps: React.DependencyList,
options?: { readonly signal?: AbortSignal } & RenderOptions,
): (...args: Args) => Promise<A> {
const runPromise = this.useRunPromise()
return React.useCallback((...args) => runPromise(callback(...args), options), [
...options?.doNotReExecuteOnRuntimeOrContextChange ? [] : [runPromise],
...(deps ?? []),
...deps,
])
}