diff --git a/src/app/layout.tsx b/src/app/layout.tsx index aebbeae..b0d70c5 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -2,6 +2,7 @@ import "~/styles/globals.css"; import { Inter as FontSans } from "next/font/google"; import { cn } from "~/lib/utils"; import { SessionProvider } from "next-auth/react"; +import Sign_Out from "~/components/auth/Sign_Out"; import { type Metadata } from "next"; export const metadata: Metadata = { @@ -26,6 +27,9 @@ export default function RootLayout({ fontSans.variable)} > +
+ +
{children}
diff --git a/src/app/page.tsx b/src/app/page.tsx index 5ea57b9..513de90 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -1,20 +1,19 @@ import { auth } from "~/auth"; -import { db } from "~/server/db"; import No_Session from "~/components/auth/No_Session"; +import TT_Header from "~/components/ui/TT_Header"; +import Techs_Table from "~/components/ui/Techs_Table"; export default async function HomePage() { const user = await auth(); - const employees = await db.query.users.findMany({ - orderBy: (model, {desc}) => desc(model.id), - }); if (!user) { return ( ); } else { return ( -
-

Welcome!

+
+ +
); } diff --git a/src/components/auth/Sign_Out.tsx b/src/components/auth/Sign_Out.tsx new file mode 100644 index 0000000..1103747 --- /dev/null +++ b/src/components/auth/Sign_Out.tsx @@ -0,0 +1,13 @@ +import { signOut } from "~/auth" + +export default function Sign_Out() { + return ( +
{ + "use server" + await signOut() + }}> + +
+ ) +} diff --git a/src/components/ui/TT_Header.tsx b/src/components/ui/TT_Header.tsx new file mode 100644 index 0000000..61a9a10 --- /dev/null +++ b/src/components/ui/TT_Header.tsx @@ -0,0 +1,16 @@ +import Image from "next/image"; + +export default function TT_Header() { + return ( +
+
+ Tech Tracker Logo +

+ Tech Tracker +

+
+
+ ); +}; diff --git a/src/components/ui/Techs_Table.tsx b/src/components/ui/Techs_Table.tsx new file mode 100644 index 0000000..9d51d48 --- /dev/null +++ b/src/components/ui/Techs_Table.tsx @@ -0,0 +1,48 @@ +import { db } from '~/server/db'; + +export default async function Techs_Table() { + + const employees = await db.query.users.findMany({ + orderBy: (model, {desc}) => desc(model.id), + }); + + const formatTime = (timestamp: Date) => { + const date = new Date(timestamp); + const time = date.toLocaleTimeString("en-US", + {hour: "numeric", minute: "numeric",}); + const day = date.getDate(); + const month = date.toLocaleString("default", { month: "long" }); + return `${time} - ${month} ${day}`; + } + + return ( + + + + + + + + + + {employees.map((employee) => ( + + + + + + + ))} + +
+ + Name + + Status + + Updated At +
+ + {employee.name}{employee.status}{formatTime(employee.updatedAt)}
+ ); +};