From a26faeeb0286d3c7b140b47dfe6799075cb2d398 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E2=80=9CSalar?= <“salar.sali97@gmail.com”>
Date: Wed, 12 Oct 2022 16:23:48 +0300
Subject: [PATCH 01/51] Fetch an articl by its id, Fetch the body of the
articl(content)
---
src/components/fetchAnArticle/AnArticle.tsx | 80 +++++++++++++++++++
.../fetchAnArticle/AnArticleBody.tsx | 58 ++++++++++++++
.../fetchAnArticle/AskeletonArticle.tsx | 59 ++++++++++++++
src/components/fetchAnArticle/NotFound.tsx | 33 ++++++++
4 files changed, 230 insertions(+)
create mode 100644 src/components/fetchAnArticle/AnArticle.tsx
create mode 100644 src/components/fetchAnArticle/AnArticleBody.tsx
create mode 100644 src/components/fetchAnArticle/AskeletonArticle.tsx
create mode 100644 src/components/fetchAnArticle/NotFound.tsx
diff --git a/src/components/fetchAnArticle/AnArticle.tsx b/src/components/fetchAnArticle/AnArticle.tsx
new file mode 100644
index 0000000..54d35d8
--- /dev/null
+++ b/src/components/fetchAnArticle/AnArticle.tsx
@@ -0,0 +1,80 @@
+import { useArticleViewModel } from "article/controller/articleViewModel";
+import { useArticleStore } from "article/data/articleStoreImplementation";
+import { useEffect } from "react";
+import * as ArticlePart from "../../components/Article/Article";
+import { useParams } from "react-router";
+import AskeletonArticle from "./AskeletonArticle";
+import Container from "components/Container";
+import NotFound from "./NotFound";
+import { SVGSearch } from "components/icons";
+import BaseLayout from "components/BaseLayout";
+
+const AnArticle = () => {
+ const store = useArticleStore();
+ const { article, hasError, shouldShowLoading } = useArticleViewModel(store);
+
+ const { id } = useParams();
+ const newId = `${id}`;
+
+ useEffect(() => {
+ store.getArticle(newId);
+ }, [id]);
+
+ if (hasError) {
+ return
+