diff --git a/packages/example/src/routeTree.gen.ts b/packages/example/src/routeTree.gen.ts index 640dfa0..4cb8a51 100644 --- a/packages/example/src/routeTree.gen.ts +++ b/packages/example/src/routeTree.gen.ts @@ -11,11 +11,18 @@ // Import Routes import { Route as rootRoute } from './routes/__root' +import { Route as TeardownImport } from './routes/teardown' import { Route as CountImport } from './routes/count' import { Route as IndexImport } from './routes/index' // Create/Update Routes +const TeardownRoute = TeardownImport.update({ + id: '/teardown', + path: '/teardown', + getParentRoute: () => rootRoute, +} as any) + const CountRoute = CountImport.update({ id: '/count', path: '/count', @@ -46,6 +53,13 @@ declare module '@tanstack/react-router' { preLoaderRoute: typeof CountImport parentRoute: typeof rootRoute } + '/teardown': { + id: '/teardown' + path: '/teardown' + fullPath: '/teardown' + preLoaderRoute: typeof TeardownImport + parentRoute: typeof rootRoute + } } } @@ -54,36 +68,41 @@ declare module '@tanstack/react-router' { export interface FileRoutesByFullPath { '/': typeof IndexRoute '/count': typeof CountRoute + '/teardown': typeof TeardownRoute } export interface FileRoutesByTo { '/': typeof IndexRoute '/count': typeof CountRoute + '/teardown': typeof TeardownRoute } export interface FileRoutesById { __root__: typeof rootRoute '/': typeof IndexRoute '/count': typeof CountRoute + '/teardown': typeof TeardownRoute } export interface FileRouteTypes { fileRoutesByFullPath: FileRoutesByFullPath - fullPaths: '/' | '/count' + fullPaths: '/' | '/count' | '/teardown' fileRoutesByTo: FileRoutesByTo - to: '/' | '/count' - id: '__root__' | '/' | '/count' + to: '/' | '/count' | '/teardown' + id: '__root__' | '/' | '/count' | '/teardown' fileRoutesById: FileRoutesById } export interface RootRouteChildren { IndexRoute: typeof IndexRoute CountRoute: typeof CountRoute + TeardownRoute: typeof TeardownRoute } const rootRouteChildren: RootRouteChildren = { IndexRoute: IndexRoute, CountRoute: CountRoute, + TeardownRoute: TeardownRoute, } export const routeTree = rootRoute @@ -97,7 +116,8 @@ export const routeTree = rootRoute "filePath": "__root.tsx", "children": [ "/", - "/count" + "/count", + "/teardown" ] }, "/": { @@ -105,6 +125,9 @@ export const routeTree = rootRoute }, "/count": { "filePath": "count.tsx" + }, + "/teardown": { + "filePath": "teardown.tsx" } } } diff --git a/packages/example/src/routes/teardown.tsx b/packages/example/src/routes/teardown.tsx new file mode 100644 index 0000000..3a38383 --- /dev/null +++ b/packages/example/src/routes/teardown.tsx @@ -0,0 +1,30 @@ +import { Reffuse } from "@/reffuse" +import { createFileRoute } from "@tanstack/react-router" +import { DateTime, Effect, Ref, SubscriptionRef } from "effect" +import { useMemo } from "react" + + +export const Route = createFileRoute("/teardown")({ + component: Teardown +}) + +function Teardown() { + + const runtime = Reffuse.useRuntime() + + const timeRef = useMemo(() => DateTime.now.pipe( + Effect.flatMap(SubscriptionRef.make), + runtime.runSync, + // eslint-disable-next-line react-hooks/exhaustive-deps + ), []) + + Reffuse.useFork(DateTime.now.pipe( + Effect.flatMap(Ref.set(timeRef)) + )) + + const [time] = Reffuse.useRef(timeRef) + + + return <> + +}