From 2063138f8c6b8f4da41320efba1083fff14b40e8 Mon Sep 17 00:00:00 2001 From: msabhii Date: Tue, 25 Mar 2025 21:32:53 +0530 Subject: [PATCH] fixing --- apps/X/app/(pages)/profile/page.tsx | 2 +- apps/X/app/api/post/route.ts | 21 ++++++--- apps/X/src/components/TopHeader.tsx | 27 ++++++++++- .../Post/{TopNavbar.tsx => TopPostHome.tsx} | 0 apps/X/src/components/ui/Post/topHead.tsx | 3 -- apps/X/src/components/ui/Profile/UserInfo.tsx | 45 ++++++++++++++----- apps/X/src/components/ui/TopNavHome.tsx | 16 +++++++ apps/X/src/components/ui/TweetComp.tsx | 1 - apps/X/src/components/ui/index.ts | 4 +- .../20250325135557_fixing/migration.sql | 2 + packages/db/prisma/schema.prisma | 1 + 11 files changed, 97 insertions(+), 25 deletions(-) rename apps/X/src/components/ui/Post/{TopNavbar.tsx => TopPostHome.tsx} (100%) delete mode 100644 apps/X/src/components/ui/Post/topHead.tsx create mode 100644 apps/X/src/components/ui/TopNavHome.tsx create mode 100644 packages/db/prisma/migrations/20250325135557_fixing/migration.sql diff --git a/apps/X/app/(pages)/profile/page.tsx b/apps/X/app/(pages)/profile/page.tsx index 4241d06..9981f33 100644 --- a/apps/X/app/(pages)/profile/page.tsx +++ b/apps/X/app/(pages)/profile/page.tsx @@ -1,6 +1,6 @@ "use client"; -import { CenterComp, HomeLeft } from "@/components/ui"; +import { HomeLeft } from "@/components/ui"; import { UserInfo } from "@/components/ui/Profile/UserInfo"; const page = () => { diff --git a/apps/X/app/api/post/route.ts b/apps/X/app/api/post/route.ts index b741956..a4e34cc 100644 --- a/apps/X/app/api/post/route.ts +++ b/apps/X/app/api/post/route.ts @@ -1,5 +1,6 @@ import { PrismaClient } from "@prisma/client"; import { authOptions } from "app/lib/auth"; +import { error } from "console"; import { getServerSession } from "next-auth"; //? https://github.com/code100x/cms/blob/main/src/app/api/admin/content/route.ts import { NextRequest, NextResponse } from "next/server"; @@ -42,33 +43,41 @@ export const POST = async (req: NextRequest) => { { error: "Unauthorized - User not authenticated" }, { status: 401 } ); - } else { - console.log("reaching"); } + const sessionUserId = parseInt(session.user.id); + const user = await prisma.user.findFirst({ where: { id: sessionUserId } }); + // if (!user) { + // return NextResponse.json({ error: "Not a valid User" }, { status: 401 }); + // } const body = await req.json(); console.log("Request Body:", body); + console.log("Checking body content..."); if (!body || !body.content) { return NextResponse.json( - { error: "content is requried" }, + { error: "content is required" }, { status: 400 } ); } + console.log("Parsing the content..."); const userId = parseInt(session.user.id); if (isNaN(userId)) { return NextResponse.json({ error: "Invalid user ID" }, { status: 400 }); } const { content } = body; + console.log("Creating tweet with userId:", userId, "and content:", content); const tweet = await prisma.tweet.create({ data: { content, userID: userId }, }); - // router.push("") console.log("This is the response", tweet); - - return NextResponse.json(tweet, { status: 201 }); + return NextResponse.json(tweet, { status: 200 }); } catch (error) { console.log("Getting error in Creating", error); + return NextResponse.json( + { error: "Internal Server Error" }, + { status: 500 } + ); } }; diff --git a/apps/X/src/components/TopHeader.tsx b/apps/X/src/components/TopHeader.tsx index dad359a..8363c72 100644 --- a/apps/X/src/components/TopHeader.tsx +++ b/apps/X/src/components/TopHeader.tsx @@ -1,3 +1,28 @@ +"use client"; +import { IoArrowBack } from "react-icons/io5"; +import { useSession } from "next-auth/react"; +import { useRouter } from "next/navigation"; + export const TopHeader = () => { - return
TopHeader
; + const { data: session } = useSession(); + + const router = useRouter(); + + const handleBackClick = () => { + router.back(); + }; + + return ( +
+
+
+ +
+
+

{session?.user?.name}

+

28.3K posts

+
+
+
+ ); }; diff --git a/apps/X/src/components/ui/Post/TopNavbar.tsx b/apps/X/src/components/ui/Post/TopPostHome.tsx similarity index 100% rename from apps/X/src/components/ui/Post/TopNavbar.tsx rename to apps/X/src/components/ui/Post/TopPostHome.tsx diff --git a/apps/X/src/components/ui/Post/topHead.tsx b/apps/X/src/components/ui/Post/topHead.tsx deleted file mode 100644 index b73b62f..0000000 --- a/apps/X/src/components/ui/Post/topHead.tsx +++ /dev/null @@ -1,3 +0,0 @@ -export const TopHead = () => { - return
Top of head
; -}; diff --git a/apps/X/src/components/ui/Profile/UserInfo.tsx b/apps/X/src/components/ui/Profile/UserInfo.tsx index f7615a4..af43d58 100644 --- a/apps/X/src/components/ui/Profile/UserInfo.tsx +++ b/apps/X/src/components/ui/Profile/UserInfo.tsx @@ -1,22 +1,42 @@ "use client"; import { TopHeader } from "@/components/TopHeader"; +import { Avatar, AvatarFallback, AvatarImage } from "@radix-ui/react-avatar"; import axios from "axios"; import { useSession } from "next-auth/react"; -import { useEffect } from "react"; +import { useEffect, useState } from "react"; import { AiOutlineLink } from "react-icons/ai"; import { GrLocation } from "react-icons/gr"; import { IoCalendarOutline } from "react-icons/io5"; import { PiBalloon } from "react-icons/pi"; +interface UserDataProps { + DOB: string; + location: string; + createdDate: string; + bio: string; +} export const UserInfo = () => { const { data: session } = useSession(); + const [userData, setUserData] = useState(null); + const [error, setError] = useState(""); + const [loading, setLoading] = useState(false); + useEffect(() => { const fetchUserData = async () => { try { + setLoading(true); const response = await axios.get("api/user"); - console.log("User data", response.data); + const u_Data = response.data.data; + if (Array.isArray(u_Data) && response.data.data.length > 0) { + setUserData(u_Data); + console.log(u_Data, "Here it is"); + } else { + setError("No user data found"); + } } catch (error) { console.log("Getting user data failed", error); + } finally { + setLoading(false); } }; fetchUserData(); @@ -36,12 +56,13 @@ export const UserInfo = () => { }} >
- Extra large avatar + + + {session?.user?.name?.[0]} +
@@ -55,7 +76,7 @@ export const UserInfo = () => {

- location + {userData?.[0]?.location || "Location"}

{ buymeacoffee.com/mscode07

- {} + + {userData?.[0]?.DOB || "DOB"}

- Joined December 2017 + {" "} + {userData?.[0]?.createdDate}

diff --git a/apps/X/src/components/ui/TopNavHome.tsx b/apps/X/src/components/ui/TopNavHome.tsx new file mode 100644 index 0000000..301229c --- /dev/null +++ b/apps/X/src/components/ui/TopNavHome.tsx @@ -0,0 +1,16 @@ +"use client"; +export const TopHead = () => { + return ( +
+
+
+
+
+

+

+
+
+
+
+ ); +}; diff --git a/apps/X/src/components/ui/TweetComp.tsx b/apps/X/src/components/ui/TweetComp.tsx index 100f866..95e03e8 100644 --- a/apps/X/src/components/ui/TweetComp.tsx +++ b/apps/X/src/components/ui/TweetComp.tsx @@ -60,7 +60,6 @@ export const TweetComp = ({ tweet }: TweetProps) => { })}

- {/*

...

*/}
diff --git a/apps/X/src/components/ui/index.ts b/apps/X/src/components/ui/index.ts index 6d5d3ac..8c9f818 100644 --- a/apps/X/src/components/ui/index.ts +++ b/apps/X/src/components/ui/index.ts @@ -13,8 +13,8 @@ import { UserAvatar } from "./usrAvatar"; import { Button } from "./button"; import { HomeComp } from "./home/HomeComp"; import { HomeLeft } from "./home/HomeLeft"; -import { TopHead } from "./Post/topHead"; -import { TopPost } from "./Post/TopNavbar"; +import { TopHead } from "./TopNavHome"; +import { TopPost } from "./Post/TopPostHome"; import { LoaderComp } from "../LoaderComp"; import { TopHeader } from "../TopHeader"; import { userInfo } from "os"; diff --git a/packages/db/prisma/migrations/20250325135557_fixing/migration.sql b/packages/db/prisma/migrations/20250325135557_fixing/migration.sql new file mode 100644 index 0000000..ea86614 --- /dev/null +++ b/packages/db/prisma/migrations/20250325135557_fixing/migration.sql @@ -0,0 +1,2 @@ +-- AlterTable +ALTER TABLE "User" ADD COLUMN "bioLink" TEXT; diff --git a/packages/db/prisma/schema.prisma b/packages/db/prisma/schema.prisma index 0f5dc8c..13eed47 100644 --- a/packages/db/prisma/schema.prisma +++ b/packages/db/prisma/schema.prisma @@ -25,6 +25,7 @@ model User { createdDate DateTime @default(now()) DOB DateTime? location String? + bioLink String? } model Tweet {