0.1.13 #18
@@ -1,5 +1,5 @@
|
|||||||
import { AlertDialog, Button, Flex, Text } from "@radix-ui/themes"
|
import { AlertDialog, Button, Flex, Text } from "@radix-ui/themes"
|
||||||
import { ErrorHandler } from "@reffuse/extension-query"
|
import { QueryErrorHandler } from "@reffuse/extension-query"
|
||||||
import { Cause, Console, Context, Effect, Either, flow, Match, Option, Stream } from "effect"
|
import { Cause, Console, Context, Effect, Either, flow, Match, Option, Stream } from "effect"
|
||||||
import { useState } from "react"
|
import { useState } from "react"
|
||||||
import { AppQueryErrorHandler } from "./query"
|
import { AppQueryErrorHandler } from "./query"
|
||||||
@@ -8,7 +8,7 @@ import { R } from "./reffuse"
|
|||||||
|
|
||||||
export function VQueryErrorHandler() {
|
export function VQueryErrorHandler() {
|
||||||
const [failure, setFailure] = useState(Option.none<Cause.Cause<
|
const [failure, setFailure] = useState(Option.none<Cause.Cause<
|
||||||
ErrorHandler.Error<Context.Tag.Service<AppQueryErrorHandler>>
|
QueryErrorHandler.Error<Context.Tag.Service<AppQueryErrorHandler>>
|
||||||
>>())
|
>>())
|
||||||
|
|
||||||
R.useFork(() => AppQueryErrorHandler.pipe(Effect.flatMap(handler =>
|
R.useFork(() => AppQueryErrorHandler.pipe(Effect.flatMap(handler =>
|
||||||
|
|||||||
@@ -6,17 +6,17 @@ import { StrictMode } from "react"
|
|||||||
import { createRoot } from "react-dom/client"
|
import { createRoot } from "react-dom/client"
|
||||||
import { ReffuseRuntime } from "reffuse"
|
import { ReffuseRuntime } from "reffuse"
|
||||||
import { AppQueryClient, AppQueryErrorHandler } from "./query"
|
import { AppQueryClient, AppQueryErrorHandler } from "./query"
|
||||||
import { GlobalContext } from "./reffuse"
|
import { RootContext } from "./reffuse"
|
||||||
import { routeTree } from "./routeTree.gen"
|
import { routeTree } from "./routeTree.gen"
|
||||||
|
|
||||||
|
|
||||||
const layer = Layer.empty.pipe(
|
const layer = Layer.empty.pipe(
|
||||||
|
Layer.provideMerge(AppQueryClient.Live),
|
||||||
|
Layer.provideMerge(AppQueryErrorHandler.Live),
|
||||||
Layer.provideMerge(Clipboard.layer),
|
Layer.provideMerge(Clipboard.layer),
|
||||||
Layer.provideMerge(Geolocation.layer),
|
Layer.provideMerge(Geolocation.layer),
|
||||||
Layer.provideMerge(Permissions.layer),
|
Layer.provideMerge(Permissions.layer),
|
||||||
Layer.provideMerge(FetchHttpClient.layer),
|
Layer.provideMerge(FetchHttpClient.layer),
|
||||||
Layer.provideMerge(AppQueryClient.Live),
|
|
||||||
Layer.provideMerge(AppQueryErrorHandler.Live),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const router = createRouter({ routeTree })
|
const router = createRouter({ routeTree })
|
||||||
@@ -31,9 +31,9 @@ declare module "@tanstack/react-router" {
|
|||||||
createRoot(document.getElementById("root")!).render(
|
createRoot(document.getElementById("root")!).render(
|
||||||
<StrictMode>
|
<StrictMode>
|
||||||
<ReffuseRuntime.Provider>
|
<ReffuseRuntime.Provider>
|
||||||
<GlobalContext.Provider layer={layer}>
|
<RootContext.Provider layer={layer}>
|
||||||
<RouterProvider router={router} />
|
<RouterProvider router={router} />
|
||||||
</GlobalContext.Provider>
|
</RootContext.Provider>
|
||||||
</ReffuseRuntime.Provider>
|
</ReffuseRuntime.Provider>
|
||||||
</StrictMode>
|
</StrictMode>
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
import { HttpClientError } from "@effect/platform"
|
import { HttpClientError } from "@effect/platform"
|
||||||
import { ErrorHandler, QueryClient } from "@reffuse/extension-query"
|
import { QueryClient, QueryErrorHandler } from "@reffuse/extension-query"
|
||||||
import { Effect } from "effect"
|
import { Effect } from "effect"
|
||||||
|
|
||||||
|
|
||||||
export class AppQueryErrorHandler extends ErrorHandler.Service<AppQueryErrorHandler,
|
export class AppQueryErrorHandler extends QueryErrorHandler.Service<AppQueryErrorHandler,
|
||||||
HttpClientError.HttpClientError
|
HttpClientError.HttpClientError
|
||||||
>()(
|
>()(
|
||||||
"AppQueryErrorHandler",
|
"AppQueryErrorHandler",
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
import { GlobalReffuse } from "@/reffuse"
|
import { RootReffuse } from "@/reffuse"
|
||||||
import { Reffuse, ReffuseContext } from "reffuse"
|
import { Reffuse, ReffuseContext } from "reffuse"
|
||||||
import { Uuid4Query } from "./services"
|
import { Uuid4Query } from "./services"
|
||||||
|
|
||||||
|
|
||||||
export const QueryContext = ReffuseContext.make<Uuid4Query.Uuid4Query>()
|
export const QueryContext = ReffuseContext.make<Uuid4Query.Uuid4Query>()
|
||||||
|
|
||||||
export const R = new class QueryReffuse extends GlobalReffuse.pipe(
|
export const R = new class QueryReffuse extends RootReffuse.pipe(
|
||||||
Reffuse.withContexts(QueryContext)
|
Reffuse.withContexts(QueryContext)
|
||||||
) {}
|
) {}
|
||||||
|
|||||||
@@ -6,19 +6,19 @@ import { Reffuse, ReffuseContext } from "reffuse"
|
|||||||
import { AppQueryClient, AppQueryErrorHandler } from "./query"
|
import { AppQueryClient, AppQueryErrorHandler } from "./query"
|
||||||
|
|
||||||
|
|
||||||
export const GlobalContext = ReffuseContext.make<
|
export const RootContext = ReffuseContext.make<
|
||||||
|
| AppQueryClient
|
||||||
|
| AppQueryErrorHandler
|
||||||
| Clipboard.Clipboard
|
| Clipboard.Clipboard
|
||||||
| Geolocation.Geolocation
|
| Geolocation.Geolocation
|
||||||
| Permissions.Permissions
|
| Permissions.Permissions
|
||||||
| HttpClient.HttpClient
|
| HttpClient.HttpClient
|
||||||
| AppQueryClient
|
|
||||||
| AppQueryErrorHandler
|
|
||||||
>()
|
>()
|
||||||
|
|
||||||
export class GlobalReffuse extends Reffuse.Reffuse.pipe(
|
export class RootReffuse extends Reffuse.Reffuse.pipe(
|
||||||
Reffuse.withExtension(LazyRefExtension),
|
Reffuse.withExtension(LazyRefExtension),
|
||||||
Reffuse.withExtension(QueryExtension),
|
Reffuse.withExtension(QueryExtension),
|
||||||
Reffuse.withContexts(GlobalContext),
|
Reffuse.withContexts(RootContext),
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
export const R = new GlobalReffuse()
|
export const R = new RootReffuse()
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
import { GlobalReffuse } from "@/reffuse"
|
import { RootReffuse } from "@/reffuse"
|
||||||
import { Reffuse, ReffuseContext } from "reffuse"
|
import { Reffuse, ReffuseContext } from "reffuse"
|
||||||
import { TodosState } from "./services"
|
import { TodosState } from "./services"
|
||||||
|
|
||||||
|
|
||||||
export const TodosContext = ReffuseContext.make<TodosState.TodosState>()
|
export const TodosContext = ReffuseContext.make<TodosState.TodosState>()
|
||||||
|
|
||||||
export const R = new class TodosReffuse extends GlobalReffuse.pipe(
|
export const R = new class TodosReffuse extends RootReffuse.pipe(
|
||||||
Reffuse.withContexts(TodosContext)
|
Reffuse.withContexts(TodosContext)
|
||||||
) {}
|
) {}
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ export interface ServiceResult<Self, EH, FallbackA, HandledE> extends Context.Ta
|
|||||||
QueryClient<FallbackA, HandledE>
|
QueryClient<FallbackA, HandledE>
|
||||||
> {
|
> {
|
||||||
readonly Live: Layer.Layer<
|
readonly Live: Layer.Layer<
|
||||||
Self | EH extends QueryErrorHandler.DefaultQueryErrorHandler ? EH : never,
|
Self | (EH extends QueryErrorHandler.DefaultQueryErrorHandler ? EH : never),
|
||||||
never,
|
never,
|
||||||
EH extends QueryErrorHandler.DefaultQueryErrorHandler ? never : EH
|
EH extends QueryErrorHandler.DefaultQueryErrorHandler ? never : EH
|
||||||
>
|
>
|
||||||
|
|||||||
Reference in New Issue
Block a user