HUB - Main Page design wip

This commit is contained in:
Nicolas
2025-02-10 00:09:08 +01:00
parent 1fba206dbf
commit a897a0b0a5
2 changed files with 146 additions and 29 deletions

View File

@@ -32,7 +32,20 @@ export default async function RootLayout({
<body <body
className={`${geistSans.variable} ${geistMono.variable} antialiased`} className={`${geistSans.variable} ${geistMono.variable} antialiased`}
> >
{children} <div
className="hero min-h-screen"
style={{
backgroundImage:
'url(https://img.daisyui.com/images/stock/photo-1507358522600-9f71e620c44e.webp)',
}}
>
<div className="hero-overlay bg-opacity-60"></div>
<div className="hero-content text-neutral-content text-center w-full max-w-full h-full m-52">
<div className="card bg-base-100 shadow-2xl w-full h-5/6 m-52">
{children}
</div>
</div>
</div>
</body> </body>
</NextAuthSessionProvider> </NextAuthSessionProvider>
</html> </html>

View File

@@ -1,39 +1,143 @@
import Link from 'next/link'; import Link from 'next/link';
import { PrismaClient } from '@repo/db'; import { PrismaClient } from '@repo/db';
import { PaginatedTable } from './_components/PaginatedTable'; import { PaginatedTable } from './_components/PaginatedTable';
import { ExitIcon } from "@radix-ui/react-icons"
export default async function Home() { export default async function Home() {
const prisma = new PrismaClient(); const prisma = new PrismaClient();
return ( return (
<div> <div className='flex flex-col min-h-full'>
<h1 className="text-5xl">Hub</h1> <div className="navbar">
<Link href="/logout"> <div className="flex-1">
<button className="btn">Logout</button> <a className="btn btn-ghost text-xl">Virtual Air Rescue - HUB</a>
</Link> </div>
<PaginatedTable <div className="flex-none">
rowsPerPage={10} <ul className="menu menu-horizontal px-1">
prismaModel={'user'} <li><Link href="/"><button className="btn btn-sm btn-outline btn-info">Zum Dispatch</button></Link></li>
columns={[ <li><Link href="/logout"><button className="btn btn-sm"><ExitIcon /> Logout</button></Link></li>
{ </ul>
header: 'ID', </div>
accessorKey: 'id', </div>
}, <div className='flex'>
{ <ul className="menu bg-base-200 rounded-box w-56 ml-5 h-full">
header: 'Email', <li>
accessorKey: 'email', <a>
}, <svg
{ xmlns="http://www.w3.org/2000/svg"
header: 'First Name', className="h-5 w-5"
accessorKey: 'firstname', fill="none"
}, viewBox="0 0 24 24"
{ stroke="currentColor">
header: 'Last Name', <path
accessorKey: 'lastname', strokeLinecap="round"
footer: 'Total', strokeLinejoin="round"
}, strokeWidth="2"
]} d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6" />
/> </svg>
Item 2
</a>
</li>
<li>
<a>
<svg
xmlns="http://www.w3.org/2000/svg"
className="h-5 w-5"
fill="none"
viewBox="0 0 24 24"
stroke="currentColor">
<path
strokeLinecap="round"
strokeLinejoin="round"
strokeWidth="2"
d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" />
</svg>
Item 1
</a>
</li>
<li>
<a>
<svg
xmlns="http://www.w3.org/2000/svg"
className="h-5 w-5"
fill="none"
viewBox="0 0 24 24"
stroke="currentColor">
<path
strokeLinecap="round"
strokeLinejoin="round"
strokeWidth="2"
d="M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z" />
</svg>
Item 3
</a>
</li>
</ul>
<PaginatedTable
rowsPerPage={10}
prismaModel={'user'}
columns={[
{
header: 'ID',
accessorKey: 'id',
},
{
header: 'Email',
accessorKey: 'email',
},
{
header: 'First Name',
accessorKey: 'firstname',
},
{
header: 'Last Name',
accessorKey: 'lastname',
footer: 'Total',
},
]}
/>
</div>
<footer className="footer footer-center bg-base-300 text-base-content p-4 gap-y-2 mt-auto rounded-b-xl">
<aside>
<p>Copyright © {new Date().getFullYear()} - VAR Luftretung</p>
</aside>
<nav className="grid-flow-col gap-4 md:place-self-center">
<a>
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
className="fill-current">
<path
d="M24 4.557c-.883.392-1.832.656-2.828.775 1.017-.609 1.798-1.574 2.165-2.724-.951.564-2.005.974-3.127 1.195-.897-.957-2.178-1.555-3.594-1.555-3.179 0-5.515 2.966-4.797 6.045-4.091-.205-7.719-2.165-10.148-5.144-1.29 2.213-.669 5.108 1.523 6.574-.806-.026-1.566-.247-2.229-.616-.054 2.281 1.581 4.415 3.949 4.89-.693.188-1.452.232-2.224.084.626 1.956 2.444 3.379 4.6 3.419-2.07 1.623-4.678 2.348-7.29 2.04 2.179 1.397 4.768 2.212 7.548 2.212 9.142 0 14.307-7.721 13.995-14.646.962-.695 1.797-1.562 2.457-2.549z"></path>
</svg>
</a>
<a>
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
className="fill-current">
<path
d="M19.615 3.184c-3.604-.246-11.631-.245-15.23 0-3.897.266-4.356 2.62-4.385 8.816.029 6.185.484 8.549 4.385 8.816 3.6.245 11.626.246 15.23 0 3.897-.266 4.356-2.62 4.385-8.816-.029-6.185-.484-8.549-4.385-8.816zm-10.615 12.816v-8l8 3.993-8 4.007z"></path>
</svg>
</a>
<a>
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
className="fill-current">
<path
d="M9 8h-3v4h3v12h5v-12h3.642l.358-4h-4v-1.667c0-.955.192-1.333 1.115-1.333h2.885v-5h-3.808c-3.596 0-5.192 1.583-5.192 4.615v3.385z"></path>
</svg>
</a>
</nav>
</footer>
</div> </div>
); );
} }