@reffuse/extension-query 0.1.5 #16

Merged
Thilawyn merged 347 commits from next into master 2025-06-01 05:28:47 +02:00
2 changed files with 14 additions and 13 deletions
Showing only changes of commit adaadf13b2 - Show all commits

View File

@@ -1,8 +1,9 @@
import { QueryContext } from "@/query/reffuse"
import { Uuid4Query } from "@/query/services"
import { Uuid4QueryService } from "@/query/views/Uuid4QueryService"
import { R } from "@/reffuse"
import { createFileRoute } from "@tanstack/react-router"
import { Effect, Layer } from "effect"
import { Layer } from "effect"
import { useMemo } from "react"
@@ -11,16 +12,16 @@ export const Route = createFileRoute("/query/service")({
})
function RouteComponent() {
const context = R.useContext()
const context = R.useLayer()
const layer = useMemo(() => Layer.empty.pipe(
Layer.provideMerge(Uuid4Query.Uuid4QueryLive),
Layer.provide(context)
), [])
Layer.provide(context),
), [context])
return (
<QueryContext.Provider layer={layer}>
<Uuid4QueryService />
</QueryContext.Provider>
)
}

View File

@@ -97,15 +97,15 @@ export function useMergeAll<T extends Array<unknown>>(
return React.useMemo(() => Context.mergeAll(...values), values)
}
export function useMergeAllLayers<T extends Array.NonEmptyArray<unknown>>(
export function useMergeAllLayers<T extends Array<unknown>>(
...contexts: [...{ [K in keyof T]: ReffuseContext<T[K]> }]
): Layer.Layer<T[number]> {
const values = Array.map(
contexts as Array.NonEmptyArray<ReffuseContext<T[number]>>,
v => React.use(v.Context),
)
const values = contexts.map(v => React.use(v.Context))
return React.useMemo(() => Layer.mergeAll(
return React.useMemo(() => Array.isNonEmptyArray(values)
? Layer.mergeAll(
...Array.map(values, context => Layer.effectContext(Effect.succeed(context)))
), values)
)
: Layer.empty as Layer.Layer<T[number]>,
values)
}