diff --git a/packages/example/src/routes/query/service.tsx b/packages/example/src/routes/query/service.tsx
index ad1e3de..638dbe3 100644
--- a/packages/example/src/routes/query/service.tsx
+++ b/packages/example/src/routes/query/service.tsx
@@ -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 (
-
+
)
}
diff --git a/packages/reffuse/src/ReffuseContext.tsx b/packages/reffuse/src/ReffuseContext.tsx
index f1898ff..89d1394 100644
--- a/packages/reffuse/src/ReffuseContext.tsx
+++ b/packages/reffuse/src/ReffuseContext.tsx
@@ -97,15 +97,15 @@ export function useMergeAll>(
return React.useMemo(() => Context.mergeAll(...values), values)
}
-export function useMergeAllLayers>(
+export function useMergeAllLayers>(
...contexts: [...{ [K in keyof T]: ReffuseContext }]
): Layer.Layer {
- const values = Array.map(
- contexts as Array.NonEmptyArray>,
- v => React.use(v.Context),
- )
+ const values = contexts.map(v => React.use(v.Context))
- return React.useMemo(() => Layer.mergeAll(
- ...Array.map(values, context => Layer.effectContext(Effect.succeed(context)))
- ), values)
+ return React.useMemo(() => Array.isNonEmptyArray(values)
+ ? Layer.mergeAll(
+ ...Array.map(values, context => Layer.effectContext(Effect.succeed(context)))
+ )
+ : Layer.empty as Layer.Layer,
+ values)
}