From f615198c0c410a303158ddd185cfb52d0644b934 Mon Sep 17 00:00:00 2001 From: Henry Date: Mon, 30 Oct 2023 18:42:28 +0000 Subject: [PATCH] feat: setup board page --- package.json | 1 + src/app/boards/[...id]/page.tsx | 3 +++ src/app/boards/boards.tsx | 25 +++++++++++++++++++++++++ src/app/boards/layout.tsx | 32 +++++++++++++++++--------------- src/app/boards/page.tsx | 29 +++++++++++++++++++++++++++-- src/server/db/schema.ts | 4 ++-- 6 files changed, 75 insertions(+), 19 deletions(-) create mode 100644 src/app/boards/[...id]/page.tsx create mode 100644 src/app/boards/boards.tsx diff --git a/package.json b/package.json index 81ec94d2..fb4b8ad9 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,7 @@ "next-auth": "^4.24.4", "react": "18.2.0", "react-dom": "18.2.0", + "react-icons": "^4.11.0", "superjson": "^1.13.1", "zod": "^3.22.4" }, diff --git a/src/app/boards/[...id]/page.tsx b/src/app/boards/[...id]/page.tsx new file mode 100644 index 00000000..5100a63b --- /dev/null +++ b/src/app/boards/[...id]/page.tsx @@ -0,0 +1,3 @@ +export default function BoardPage() { + return <>; +} diff --git a/src/app/boards/boards.tsx b/src/app/boards/boards.tsx new file mode 100644 index 00000000..cca8a944 --- /dev/null +++ b/src/app/boards/boards.tsx @@ -0,0 +1,25 @@ +import Link from "next/link"; + +import { api } from "~/trpc/server"; + +export async function Boards() { + const boards = await api.board.all.query(); + + if (boards?.length === 0) return <>; + + return ( +
+ {boards?.map((board) => { + return ( + +
+

+ {board.name} +

+
+ + ); + })} +
+ ); +} diff --git a/src/app/boards/layout.tsx b/src/app/boards/layout.tsx index de16e8c2..68ddbbd3 100644 --- a/src/app/boards/layout.tsx +++ b/src/app/boards/layout.tsx @@ -20,7 +20,7 @@ const NavButton: React.FC<{ @@ -44,20 +44,7 @@ export default async function Layout(props: { children: React.ReactNode }) {
-
diff --git a/src/app/boards/page.tsx b/src/app/boards/page.tsx index 5bc717aa..f95a92de 100644 --- a/src/app/boards/page.tsx +++ b/src/app/boards/page.tsx @@ -1,5 +1,30 @@ -"use client"; +import { HiOutlinePlusSmall } from "react-icons/hi2"; +import { Boards } from "./boards"; export default function BoardsPage() { - return
; + return ( +
+
+

+ Boards +

+
+ +
+
+ +
+ +
+
+ ); } diff --git a/src/server/db/schema.ts b/src/server/db/schema.ts index d2b50d31..a2f2aa17 100644 --- a/src/server/db/schema.ts +++ b/src/server/db/schema.ts @@ -17,12 +17,12 @@ import { type AdapterAccount } from "next-auth/adapters"; * * @see https://orm.drizzle.team/docs/goodies#multi-project-schema */ -export const mysqlTable = mysqlTableCreator((name) => `kan_${name}`); +export const mysqlTable = mysqlTableCreator((name) => `kan.${name}`); export const boards = mysqlTable( "board", { - id: bigint("id", { mode: "number" }).primaryKey().autoincrement(), + id: varchar("id", { length: 12 }).notNull().primaryKey(), name: varchar("name", { length: 255 }), createdBy: varchar("createdBy", { length: 255 }).notNull(), createdAt: timestamp("created_at")