diff --git a/packages/webui/src/routes/__root.tsx b/packages/webui/src/routes/__root.tsx
index 0b18730..8a63141 100644
--- a/packages/webui/src/routes/__root.tsx
+++ b/packages/webui/src/routes/__root.tsx
@@ -9,8 +9,6 @@ const TanStackRouterDevtools = process.env.NODE_ENV === "production"
})))
-export const Route = createRootRoute({ component: Root })
-
export function Root() {
return <>
@@ -20,3 +18,5 @@ export function Root() {
>
}
+
+export const Route = createRootRoute({ component: Root })
diff --git a/packages/webui/src/routes/index.lazy.tsx b/packages/webui/src/routes/index.lazy.tsx
index 1e3dbc7..02682ee 100644
--- a/packages/webui/src/routes/index.lazy.tsx
+++ b/packages/webui/src/routes/index.lazy.tsx
@@ -1,9 +1,51 @@
+import { Schema as S } from "@effect/schema"
import { createLazyFileRoute } from "@tanstack/react-router"
-import { VTodosSubscription } from "../todo/VTodosSubscription"
+import { JsonifiableTodo } from "@todo-tests/common/data"
+import { Option, flow, identity } from "effect"
+import { IObservableArray, observable } from "mobx"
+import { observer } from "mobx-react-lite"
+import { useState } from "react"
+import { Todo } from "../data"
+import { VTodo } from "../todo/VTodo"
+import { trpc } from "../trpc/trpc"
+const decodeTodos = flow(
+ S.decodeSync(
+ S.mutable(S.Array(
+ JsonifiableTodo.pipe(S.compose(Todo))
+ ))
+ ),
+
+ observable.array,
+)
+
+
+export const Index = observer(() => {
+
+ const [todos, setTodos] = useState
>(observable.array())
+
+ trpc.todos.changes.useSubscription(undefined, {
+ onData: data => {
+ setTodos(decodeTodos(data))
+ }
+ })
+
+ return (
+
+ {todos.map(todo => (
+ todo.order,
+ })}
+
+ todo={todo}
+ />
+ ))}
+
+ )
+
+})
+
export const Route = createLazyFileRoute("/")({ component: Index })
-
-export function Index() {
- return
-}
diff --git a/packages/webui/src/todo/VTodos.tsx b/packages/webui/src/todo/VTodos.tsx
deleted file mode 100644
index bed7c34..0000000
--- a/packages/webui/src/todo/VTodos.tsx
+++ /dev/null
@@ -1,29 +0,0 @@
-import { Option, identity } from "effect"
-import { IObservableArray } from "mobx"
-import { observer } from "mobx-react-lite"
-import { Todo } from "../data"
-import { VTodo } from "./VTodo"
-
-
-export interface VTodosProps {
- todos: IObservableArray
-}
-
-
-/**
- * Shows a vertical list of todos
- */
-export const VTodos = observer(({ todos }: VTodosProps) => (
-
- {todos.map(todo => (
- todo.order,
- })}
-
- todo={todo}
- />
- ))}
-
-))
diff --git a/packages/webui/src/todo/VTodosSubscription.tsx b/packages/webui/src/todo/VTodosSubscription.tsx
deleted file mode 100644
index 59f9204..0000000
--- a/packages/webui/src/todo/VTodosSubscription.tsx
+++ /dev/null
@@ -1,39 +0,0 @@
-import { Schema as S } from "@effect/schema"
-import { JsonifiableTodo } from "@todo-tests/common/data"
-import { flow } from "effect"
-import { IObservableArray, observable } from "mobx"
-import { observer } from "mobx-react-lite"
-import { useState } from "react"
-import { Todo } from "../data"
-import { trpc } from "../trpc/trpc"
-import { VTodos } from "./VTodos"
-
-
-const decodeTodos = flow(
- S.decodeSync(
- S.mutable(S.Array(
- JsonifiableTodo.pipe(S.compose(Todo))
- ))
- ),
-
- observable.array,
-)
-
-
-/**
- * Shows a vertical list of todos
- */
-export const VTodosSubscription = observer(() => {
-
- const [todos, setTodos] = useState>(observable.array())
-
- trpc.todos.changes.useSubscription(undefined, {
- onData: data => {
- setTodos(decodeTodos(data))
- }
- })
-
-
- return
-
-})