diff --git a/bun.lockb b/bun.lockb index 207ac14..690ee21 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/packages/webui/package.json b/packages/webui/package.json index 6208941..446d49b 100644 --- a/packages/webui/package.json +++ b/packages/webui/package.json @@ -12,17 +12,18 @@ "@effect/schema": "^0.68.17", "@tanstack/react-query": "4", "@thilawyn/thilalib": "^0.1.5", + "@todo-tests/common": "workspace:*", "@trpc/client": "^10.45.2", "@trpc/react-query": "^10.45.2", "effect": "^3.4.7", "mobx": "^6.13.0", "mobx-react-lite": "^4.0.7", + "primereact": "^10.7.0", "react": "^18.3.1", "react-dom": "^18.3.1", "ws": "^8.18.0" }, "devDependencies": { - "@todo-tests/common": "workspace:*", "@types/react": "^18.3.3", "@types/react-dom": "^18.3.0", "@typescript-eslint/eslint-plugin": "^7.15.0", diff --git a/packages/webui/src/App.tsx b/packages/webui/src/App.tsx index b1f5dcd..89b745e 100644 --- a/packages/webui/src/App.tsx +++ b/packages/webui/src/App.tsx @@ -1,3 +1,5 @@ +import { PrimeReactProvider } from "primereact/api" +import "primereact/resources/themes/lara-light-cyan/theme.css" import "./index.css" import { VTodosSubscription } from "./todo/VTodosSubscription" import { TRPCClientProvider } from "./trpc/TRPCClientProvider" @@ -6,10 +8,12 @@ import { TRPCClientProvider } from "./trpc/TRPCClientProvider" export function App() { return ( - - {/* */} - - + + + {/* */} + + + ) } diff --git a/packages/webui/src/todo/VTodo.tsx b/packages/webui/src/todo/VTodo.tsx index f88c8fc..f0e0217 100644 --- a/packages/webui/src/todo/VTodo.tsx +++ b/packages/webui/src/todo/VTodo.tsx @@ -1,4 +1,5 @@ import { observer } from "mobx-react-lite" +import { Card } from "primereact/card" import { Todo } from "../data" @@ -10,9 +11,9 @@ export interface VTodoProps { export const VTodo = observer(({ todo }: VTodoProps) => { return ( -
-

{todo.content}

-
+ +

{todo.content}

+
) }) diff --git a/packages/webui/src/todo/VTodos.tsx b/packages/webui/src/todo/VTodos.tsx index a4f98e1..bed7c34 100644 --- a/packages/webui/src/todo/VTodos.tsx +++ b/packages/webui/src/todo/VTodos.tsx @@ -14,7 +14,7 @@ export interface VTodosProps { * Shows a vertical list of todos */ export const VTodos = observer(({ todos }: VTodosProps) => ( -
+
{todos.map(todo => ( { const [todos, setTodos] = useState>(observable.array()) trpc.todos.changes.useSubscription(undefined, { - onData(data) { + onData: data => { setTodos(decodeTodos(data)) } }) - return ( -
- {todos.map(todo => ( - todo.order, - })} - - todo={todo} - /> - ))} -
- ) + return })