From c58ba460d51a06be8891dfc76f991c3a69b31c0e Mon Sep 17 00:00:00 2001 From: Leo dev Date: Mon, 17 Feb 2025 15:11:28 +0100 Subject: [PATCH] ui update --- src/app/api/session/route.ts | 48 ++++++++++++++++++++++++++++++++ src/app/calendar/page.tsx | 4 +-- src/app/dashboard/page.tsx | 17 ++++++++--- src/app/signup/page.tsx | 4 --- src/components/accountStatus.tsx | 2 +- src/components/engagement.tsx | 22 +++++++-------- src/components/ideas.tsx | 2 +- src/components/recentPosts.tsx | 5 +--- 8 files changed, 75 insertions(+), 29 deletions(-) create mode 100644 src/app/api/session/route.ts diff --git a/src/app/api/session/route.ts b/src/app/api/session/route.ts new file mode 100644 index 0000000..f46e412 --- /dev/null +++ b/src/app/api/session/route.ts @@ -0,0 +1,48 @@ +import { NextResponse, NextRequest } from 'next/server'; +import database from '../database'; +import { ObjectId } from 'mongodb'; + +// Account login +// Email exists +// Password is valid +export async function GET(req: NextRequest) { + const sessionId = new URL(req.url).searchParams.get('id'); + + if (typeof sessionId !== 'string') + return NextResponse.json( + { + message: 'Invalid structure, required param `id=`', + }, + { status: 400 } + ); + + const user = await database.sessions.findOne({ + _id: new ObjectId(sessionId), + }); + + if (!user) + return NextResponse.json( + { + message: 'Invalid session', + }, + { status: 404 } + ); + + return NextResponse.json( + { + message: 'ok', + dashboard: { + engagement: [ + { week: 'Mo', views: 7300 }, + { week: 'Tuesday', views: 18000 }, + { week: 'Wednesday', views: 12000 }, + { week: 'Thursday', views: 12000 }, + { week: 'Friday', views: 23000 }, + { week: 'Saturday', views: 40000 }, + { week: 'Sunday', views: 20000 }, + ], + }, + }, + { status: 200 } + ); +} diff --git a/src/app/calendar/page.tsx b/src/app/calendar/page.tsx index 40095fa..88f3339 100644 --- a/src/app/calendar/page.tsx +++ b/src/app/calendar/page.tsx @@ -38,9 +38,7 @@ function CalendarApp() { isDark: true, }); - useEffect(() => { - console.log(eventsService.getAll()); - }, [eventsService]); + useEffect(() => {}, [eventsService]); const [newPostDialogOpen, setNewPostDialogOpen] = useState(false); const [date, setDate] = useState(today); diff --git a/src/app/dashboard/page.tsx b/src/app/dashboard/page.tsx index 98bc097..6a8bbd1 100644 --- a/src/app/dashboard/page.tsx +++ b/src/app/dashboard/page.tsx @@ -4,8 +4,17 @@ import Ideas from '@/components/ideas'; import RecentPosts from '@/components/recentPosts'; import App from '@/components/app'; import { Calendar } from '@/components/ui/calendar'; +import { cookies } from 'next/headers'; +import axios from 'axios'; + +export default async function Dashboard() { + const cookieStore = await cookies(); + const sessionId = cookieStore.get('session_id')?.value; + + const data = ( + await axios.get(`http:/localhost:3000/api/session/?id=${sessionId}`) + ).data.dashboard; -export default function Dashboard() { return (
@@ -14,7 +23,7 @@ export default function Dashboard() {
- +
-
-
+
+
{ document.cookie = `session_id=${response.data.sessionId}`; - console.log( - 'Account created with session', - response.data - ); router.push('/dashboard'); }) .catch((err) => { diff --git a/src/components/accountStatus.tsx b/src/components/accountStatus.tsx index e7baa79..8009c92 100644 --- a/src/components/accountStatus.tsx +++ b/src/components/accountStatus.tsx @@ -15,7 +15,7 @@ export default function AccountStatus({ Account status - + {accounts.map((account, i) => (
{ diff --git a/src/components/engagement.tsx b/src/components/engagement.tsx index db5d84a..9d5fbbc 100644 --- a/src/components/engagement.tsx +++ b/src/components/engagement.tsx @@ -16,15 +16,6 @@ import { ChartTooltipContent, } from '@/components/ui/chart'; -const chartData = [ - { month: 'January', views: 18600 }, - { month: 'February', views: 1000 }, - { month: 'March', views: 12000 }, - { month: 'April', views: 7300 }, - { month: 'May', views: 23000 }, - { month: 'June', views: 18000 }, -]; - const chartConfig = { views: { label: 'Views', @@ -32,13 +23,20 @@ const chartConfig = { }, } satisfies ChartConfig; -export default function Engagement() { +export default function Engagement({ + chartData, +}: { + chartData: { + week: string; + views: number; + }[]; +}) { return ( Post engagement - Showing engagements for the last 6 months + Showing engagements for the last week @@ -56,7 +54,7 @@ export default function Engagement() { > Daily content Ideas - + {ideas.map(({ idea, checked }, i) => (
Recent posts - + {posts.map((post, i) => ( - //
- // {post.content} - //