homeman-deno/routes/index.tsx

33 lines
870 B
TypeScript
Raw Normal View History

2024-01-05 21:10:38 -06:00
import { Handlers, PageProps } from '$fresh/server.ts'
2024-01-05 13:22:56 -06:00
import { useSignal } from '@preact/signals'
2024-01-05 21:10:38 -06:00
import { db, Todo, User } from '$models'
2024-01-06 23:53:44 -06:00
import { TodoList } from '../components/TodoList.tsx'
2024-01-05 13:22:56 -06:00
interface Data {
2024-01-05 21:10:38 -06:00
users: User[]
unassignedTodos: Todo[]
2024-01-05 13:22:56 -06:00
}
export const handler: Handlers = {
async GET(_req, ctx) {
2024-01-05 21:10:38 -06:00
const users = await db.users.findMany({ include: { assignedTodos: true } })
const unassignedTodos = await db.todos.findMany({
where: { assigneeUserId: null },
})
return ctx.render({ users, unassignedTodos })
2024-01-05 13:22:56 -06:00
},
}
2024-01-06 23:53:44 -06:00
export default function Home(
{ data: { users, unassignedTodos } }: PageProps<Data>,
) {
2024-01-05 13:22:56 -06:00
const count = useSignal(3)
return (
2024-01-05 21:10:38 -06:00
<div class='px-4 py-8 mx-auto bg-emerald-950'>
2024-01-05 13:22:56 -06:00
<div class='max-w-screen-md mx-auto flex flex-col items-center justify-center'>
2024-01-06 23:53:44 -06:00
{users.map((u) => <TodoList user={u} />)}
2024-01-05 13:22:56 -06:00
</div>
</div>
)
}