ls-deno/routes/note.tsx

27 lines
791 B
TypeScript

import { Handlers, PageProps } from "$fresh/server.ts";
import { listNotes } from "@/db/mod.ts";
import { Page } from "@/components/Page.tsx";
import { type Note } from "@/types.ts";
import { NoteItem } from "@/components/Note.tsx";
export const handler: Handlers<Note[]> = {
async GET(_request, context) {
return await context.render(await listNotes() || []);
},
};
export default function NotesPage({ data: notes }: PageProps<Note[]>) {
return (
<Page>
<h1>List of Notes</h1>
<p>Create a note:</p>
<form class="flex flex-col" action="./note/create" method="POST">
<textarea rows={6} class="" name="content">
</textarea>
<input class="mt-2" type="submit" value="Post" />
</form>
{notes.map(NoteItem)}
</Page>
);
}