From 23c8f468fe523fc38594c73d4c0815a242a7805e Mon Sep 17 00:00:00 2001 From: briannelson95 <71141646+briannelson95@users.noreply.github.com> Date: Mon, 23 Jun 2025 16:38:52 -0400 Subject: [PATCH] theming and structure --- .env.example | 3 + README.md | 1 + app/(auth)/dashboard/page.tsx | 31 ++++++++- app/(auth)/events/[eventId]/page.tsx | 9 +++ app/(auth)/events/page.tsx | 21 ++++++ app/(public)/layout.tsx | 16 +++-- app/(public)/page.tsx | 97 +-------------------------- app/api/events/route.ts | 5 +- app/globals.css | 13 ++++ app/layout.tsx | 4 +- bun.lockb | Bin 176383 -> 176775 bytes components/Navbar.tsx | 19 +++++- components/icons/UserIcon.tsx | 7 ++ lib/queries.ts | 6 +- 14 files changed, 123 insertions(+), 109 deletions(-) create mode 100644 .env.example create mode 100644 app/(auth)/events/[eventId]/page.tsx create mode 100644 app/(auth)/events/page.tsx create mode 100644 components/icons/UserIcon.tsx diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..ee81ea5 --- /dev/null +++ b/.env.example @@ -0,0 +1,3 @@ +DATABASE_URL=postgresql://postgres:postgres@localhost:5432/wedding_planner +NEXTAUTH_SECRET=your-secret +NEXTAUTH_URL=http://localhost:3000 \ No newline at end of file diff --git a/README.md b/README.md index 461dddf..2937010 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,7 @@ My goal for this project is to be an all-in-one self hosted event planner for ma - [ ] Gift Registries - [ ] Ability for guests to mark an item as purchased - [ ] Task Management +- [ ] Custom Theming ### Possible Features - Budget Tracking diff --git a/app/(auth)/dashboard/page.tsx b/app/(auth)/dashboard/page.tsx index b8e1a83..0696fb4 100644 --- a/app/(auth)/dashboard/page.tsx +++ b/app/(auth)/dashboard/page.tsx @@ -1,7 +1,34 @@ +import { queries } from '@/lib/queries' +import Link from 'next/link' import React from 'react' -export default function DashboardPage() { +export default async function DashboardPage() { + const events = await queries.fetchEvents() + console.log(events) + return ( -
DashboardPage
+
+

Dashboard

+
+

Your Events

+ {events.map((item) => ( +
+

ID: {item.id}

+

Name: {item.name}

+

Date: {item.date ? item.date.toISOString() : 'null'}

+

Location: {item.location ? item.location : 'null'}

+

Creator ID:{item.creatorId}

+

Created At:{item.createdAt.toISOString()}

+ +
+ ))} + + See all events + +
+
) } diff --git a/app/(auth)/events/[eventId]/page.tsx b/app/(auth)/events/[eventId]/page.tsx new file mode 100644 index 0000000..725d6e1 --- /dev/null +++ b/app/(auth)/events/[eventId]/page.tsx @@ -0,0 +1,9 @@ +import React from 'react' + +export default function SingleEventPage() { + return ( +
+ SINGLE EVENT PAGE +
+ ) +} diff --git a/app/(auth)/events/page.tsx b/app/(auth)/events/page.tsx new file mode 100644 index 0000000..1f97056 --- /dev/null +++ b/app/(auth)/events/page.tsx @@ -0,0 +1,21 @@ +import { queries } from '@/lib/queries' +import Link from 'next/link' +import React from 'react' + +export default async function EventsPage() { + const allEvents = await queries.fetchEvents() + console.log(allEvents) + + return ( +
+ Events +
+ {allEvents.length == 0 && ( + <> + You don't have any events yet. Create One! + + )} +
+
+ ) +} diff --git a/app/(public)/layout.tsx b/app/(public)/layout.tsx index a4a066a..4444a89 100644 --- a/app/(public)/layout.tsx +++ b/app/(public)/layout.tsx @@ -1,10 +1,18 @@ +'use client' +import Navbar from '@/components/Navbar' +import { SessionProvider } from 'next-auth/react' import { ReactNode } from 'react' export default function PublicLayout({ children }: { children: ReactNode }) { return ( -
- {/* Public site header if any */} - {children} -
+ <> + + +
+ {/* Public site header if any */} + {children} +
+
+ ) } \ No newline at end of file diff --git a/app/(public)/page.tsx b/app/(public)/page.tsx index 4f6c7e0..fe43c76 100644 --- a/app/(public)/page.tsx +++ b/app/(public)/page.tsx @@ -11,102 +11,9 @@ export default async function Home() { } return ( -
- Next.js logo -
    -
  1. - Get started by editing{" "} - - app/page.tsx - - . -
  2. -
  3. - Save and see your changes instantly. -
  4. -
- -
- - Vercel logomark - Deploy now - - - Read our docs - -
+ HOMEPAGE
- -
+ ); } diff --git a/app/api/events/route.ts b/app/api/events/route.ts index 07e407c..c25ca9d 100644 --- a/app/api/events/route.ts +++ b/app/api/events/route.ts @@ -1,9 +1,10 @@ -import { auth } from '@/lib/auth'; +import { getServerSession } from 'next-auth' +import { authOptions } from '@/app/api/auth/[...nextauth]/route' import { mutations } from '@/lib/mutations'; import { NextRequest, NextResponse } from 'next/server'; export async function POST(req: NextRequest) { - const session = await auth(); + const session = await getServerSession(authOptions) if (!session?.user) return new NextResponse('Unauthorized', { status: 401 }); const body = await req.json(); diff --git a/app/globals.css b/app/globals.css index a041a74..7f532d6 100644 --- a/app/globals.css +++ b/app/globals.css @@ -1,3 +1,16 @@ @import "tailwindcss"; +@theme { + --color-background: #fff5eb; + --color-text: #141d31; +} +/* @theme light { + --color-background: #fff5eb; + --color-text: #141d31; +} + +@theme dark { + --color-background: #141d31; + --color-text: #fff5eb; +} */ \ No newline at end of file diff --git a/app/layout.tsx b/app/layout.tsx index 2f85159..eaeefaa 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -2,7 +2,7 @@ import type { Metadata } from "next"; import "./globals.css"; export const metadata: Metadata = { - title: "Create Next App", + title: "Wedding Planner", description: "Generated by create next app", }; @@ -15,8 +15,8 @@ export default async function RootLayout({ return ( -

Welcome to Wedding Planner

{children} diff --git a/bun.lockb b/bun.lockb index 50bf268715a52d4cf87123ef05c38539df916076..15d497708d6067c5abe819587502a8c30043a60e 100755 GIT binary patch delta 25361 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 delta 25502 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 lFWVTtg}1M4>AG!wWy|{MeDs@^l6-z;OYv -
Wedding Planner
-
+