diff --git a/enshi/src/Pages/BlogPage/BlogPage.tsx b/enshi/src/Pages/BlogPage/BlogPage.tsx
new file mode 100644
index 0000000..fc1ae4a
--- /dev/null
+++ b/enshi/src/Pages/BlogPage/BlogPage.tsx
@@ -0,0 +1,13 @@
+import { Box } from '@radix-ui/themes'
+import { useParams } from 'react-router-dom'
+
+
+export default function BlogPage() {
+ const queryParams = useParams()
+
+ return (
+
+
+
+ )
+}
diff --git a/enshi/src/Pages/UserBlogsPage/BlogBox/BlogBox.tsx b/enshi/src/Pages/UserBlogsPage/BlogBox/BlogBox.tsx
new file mode 100644
index 0000000..4c62b4b
--- /dev/null
+++ b/enshi/src/Pages/UserBlogsPage/BlogBox/BlogBox.tsx
@@ -0,0 +1,21 @@
+import { Card } from '@radix-ui/themes';
+import { useNavigate } from 'react-router-dom';
+
+type TBlogBox = {
+ title?: string;
+ blogId?: string;
+}
+
+export default function BlogBox(props: TBlogBox) {
+
+ const navigate = useNavigate()
+
+ return (
+ navigate(``)}
+ >
+ {props?.title || "...No title..."}
+ {props?.blogId || "adqwwd"}
+
+ )
+}
diff --git a/enshi/src/Pages/UserBlogsPage/SkeletonBoxes/SkeletonBoxes.tsx b/enshi/src/Pages/UserBlogsPage/SkeletonBoxes/SkeletonBoxes.tsx
new file mode 100644
index 0000000..2419e98
--- /dev/null
+++ b/enshi/src/Pages/UserBlogsPage/SkeletonBoxes/SkeletonBoxes.tsx
@@ -0,0 +1,17 @@
+import { Box, Skeleton } from "@radix-ui/themes";
+
+export default function SkeletonBoxes() {
+ return (
+ <>
+
+
+
+
+
+
+
+
+
+ >
+ );
+}
diff --git a/enshi/src/Pages/UserBlogsPage/UserBlogsPage.tsx b/enshi/src/Pages/UserBlogsPage/UserBlogsPage.tsx
new file mode 100644
index 0000000..1396ee4
--- /dev/null
+++ b/enshi/src/Pages/UserBlogsPage/UserBlogsPage.tsx
@@ -0,0 +1,69 @@
+import { Box, Container, Flex } from "@radix-ui/themes";
+import { useQuery } from "@tanstack/react-query";
+import { useAtomValue } from "jotai";
+import { userAtom } from "../../AtomStore/AtomStore";
+import { axiosLocalhost } from "../../api/axios/axios";
+import BlogBox from "./BlogBox/BlogBox";
+import SkeletonBoxes from "./SkeletonBoxes/SkeletonBoxes";
+
+export default function UserBlogsPage() {
+ const user = useAtomValue(userAtom);
+
+ const isBigNumber = (num: any) => !Number.isSafeInteger(+num);
+
+ const enquoteBigNumber = (jsonString: any, bigNumChecker: any) =>
+ jsonString.replaceAll(
+ /([:\s\[,]*)(\d+)([\s,\]]*)/g,
+ (matchingSubstr: any, prefix: any, bigNum: any, suffix: any) =>
+ bigNumChecker(bigNum)
+ ? `${prefix}"${bigNum}"${suffix}`
+ : matchingSubstr
+ );
+
+ const parseWithBigInt = (jsonString: any, bigNumChecker: any) =>
+ JSON.parse(enquoteBigNumber(jsonString, bigNumChecker), (key, value) =>
+ !isNaN(value) && bigNumChecker(value)
+ ? BigInt(value).toString()
+ : value
+ );
+
+ const { data, isPending, isFetching } = useQuery({
+ queryKey: ["userBlogs"],
+ queryFn: async () => {
+ const response = await axiosLocalhost.get("/user/blogs", {
+ transformResponse: [(data) => data],
+ });
+
+ let temp = parseWithBigInt(response.data, isBigNumber);
+
+ return temp as any[];
+ },
+ });
+
+ if (isFetching)
+ return (
+
+
+
+ );
+
+ return (
+
+
+
+ {data
+ ? data?.map((blog: any, b) => {
+ return (
+
+ );
+ })
+ : null}
+
+
+
+ );
+}
diff --git a/enshi/src/Pages/MainPage/MainPage.tsx b/enshi/src/layout/MainPage/MainPage.tsx
similarity index 100%
rename from enshi/src/Pages/MainPage/MainPage.tsx
rename to enshi/src/layout/MainPage/MainPage.tsx
diff --git a/enshi/src/routes/routes.tsx b/enshi/src/routes/routes.tsx
index 86b324e..ef8fa3e 100644
--- a/enshi/src/routes/routes.tsx
+++ b/enshi/src/routes/routes.tsx
@@ -1,17 +1,20 @@
import { Text } from "@radix-ui/themes";
import {
createRoutesFromElements,
+ Outlet,
Route,
useRouteError,
} from "react-router-dom";
import ArticleViewer from "../Components/ArticleViewer/ArticleViewer";
+import MainPage from "../layout/MainPage/MainPage";
import AuthPageWrapper from "../Pages/AuthPageWrapper/AuthPageWrapper";
+import BlogPage from "../Pages/BlogPage/BlogPage";
import LoginPage from "../Pages/LoginRegisterPage/LoginPage/LoginPage";
import PostRedactor from "../Pages/LoginRegisterPage/PostRedactor/PostRedactor";
import RegisterPage from "../Pages/LoginRegisterPage/RegisterPage/RegisterPage";
-import MainPage from "../Pages/MainPage/MainPage";
import PostCreatorPage from "../Pages/PostCreatorPage/PostCreatorPage";
import RandomPostsPage from "../Pages/RandomPostsPage/RandomPostsPage";
+import UserBlogsPage from "../Pages/UserBlogsPage/UserBlogsPage";
function ErrorBoundary() {
let error = useRouteError();
@@ -26,14 +29,16 @@ export const routes = createRoutesFromElements(
} />
This page is yet to be created
+
+ This page is yet to be created
+
}
/>
@@ -41,8 +46,21 @@ export const routes = createRoutesFromElements(
}
/>
- } />
- } />
+ } />
+
+ }>
+
+
+
+ }
+ />
+
+
+ } />
+ } />