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 = () => {
}}
>
-

+
+
+ {session?.user?.name?.[0]}
+
@@ -55,7 +76,7 @@ export const UserInfo = () => {
- 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 {