Update Todo work

This commit is contained in:
Julien Valverdé
2024-07-13 03:29:45 +02:00
parent 9a382a80ff
commit a27ff5834e
3 changed files with 31 additions and 3 deletions

View File

@@ -10,6 +10,10 @@
}, },
"dependencies": { "dependencies": {
"@effect/schema": "^0.68.17", "@effect/schema": "^0.68.17",
"@emotion/react": "^11.11.4",
"@emotion/styled": "^11.11.5",
"@mui/icons-material": "^5.16.1",
"@mui/material": "^5.16.1",
"@tanstack/react-query": "4", "@tanstack/react-query": "4",
"@tanstack/react-router": "^1.44.2", "@tanstack/react-router": "^1.44.2",
"@thilawyn/thilalib": "^0.1.5", "@thilawyn/thilalib": "^0.1.5",

View File

@@ -31,6 +31,7 @@ export const Index = observer(() => {
} }
}) })
return ( return (
<div className="flex flex-col gap-1 items-stretch"> <div className="flex flex-col gap-1 items-stretch">
{todos.map(todo => ( {todos.map(todo => (

View File

@@ -1,6 +1,15 @@
import { Schema as S } from "@effect/schema"
import { ArrowUpward } from "@mui/icons-material"
import { JsonifiableTodo } from "@todo-tests/common/data"
import { observer } from "mobx-react-lite" import { observer } from "mobx-react-lite"
import { Card } from "primereact/card" import { Button } from "primereact/button"
import { Todo } from "../data" import { Todo } from "../data"
import { trpc } from "../trpc/trpc"
const encodeTodo = S.encodeSync(
JsonifiableTodo.pipe(S.compose(Todo))
)
export interface VTodoProps { export interface VTodoProps {
@@ -10,10 +19,24 @@ export interface VTodoProps {
export const VTodo = observer(({ todo }: VTodoProps) => { export const VTodo = observer(({ todo }: VTodoProps) => {
const updateTodo = trpc.todos.update.useMutation()
return ( return (
<Card> <div className="flex flex-row justify-between content-center p-4 rounded-lg border-2 border-black">
<p>{todo.content}</p> <p>{todo.content}</p>
</Card>
<div className="flex flex-row gap-1 content-center">
<Button
severity="secondary"
rounded
size="small"
icon={<ArrowUpward />}
onClick={() => updateTodo.mutate(encodeTodo(todo))}
/>
</div>
</div>
) )
}) })