From 35fcb5472c0b4314ac7599f661ea655729f68f52 Mon Sep 17 00:00:00 2001 From: VividTruthKeeper Date: Tue, 20 Sep 2022 15:43:32 +0500 Subject: [PATCH] create source page --- src/App.tsx | 19 +++----- src/assets/styles/_details.scss | 4 +- src/assets/styles/_source.scss | 40 ++++++++++++++++ src/pages/CreateSource.tsx | 82 +++++++++++++++++++++++++++++++++ src/pages/Details.tsx | 8 +++- src/pages/Posts.tsx | 2 +- src/pages/Source.tsx | 5 ++ 7 files changed, 142 insertions(+), 18 deletions(-) create mode 100644 src/pages/CreateSource.tsx diff --git a/src/App.tsx b/src/App.tsx index 724c91c..af83b64 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -10,7 +10,6 @@ import "./assets/styles/style.scss"; // Types import { PostType } from "./types/posts"; import { SourceType } from "./types/sources"; -import { LinksAll } from "./types/links"; // Pages import Login from "./pages/Login"; @@ -21,6 +20,7 @@ import Details from "./pages/Details"; import Post from "./pages/Post"; import Source from "./pages/Source"; import EditSource from "./pages/EditSource"; +import CreateSource from "./pages/CreateSource"; // Helpers import { getLinks } from "./helpers/apiRequests"; @@ -28,18 +28,7 @@ import { getLinks } from "./helpers/apiRequests"; const App = () => { const navigate = useNavigate(); const date = new Date("0.0.0000"); - const [posts, setPosts] = useState([ - { - id: -1, - category: "", - title: "", - link: "", - publish_date: date, - summary: "", - createdAt: date, - updatedAt: date, - }, - ]); + const [posts, setPosts] = useState(); const [sources, setSources] = useState(); @@ -89,6 +78,10 @@ const App = () => { element={
} />} /> } />} /> + } />} + /> { + const { setSources } = useContext(PostContext).sourceValue; + const navigate = useNavigate(); + const [data, setData] = useState({ + name: "", + source: "", + }); + return ( +
+
+
+
+ + + +

Source

+
+ +
) => + e.preventDefault() + } + className="source__create__block" + > +
+ + ) => { + setData({ ...data, name: e.target.value }); + }} + /> +
+
+ + ) => { + setData({ ...data, source: e.target.value }); + }} + /> +
+ +
+
+
+
+ ); +}; + +export default CreateSource; diff --git a/src/pages/Details.tsx b/src/pages/Details.tsx index b121730..35f7524 100644 --- a/src/pages/Details.tsx +++ b/src/pages/Details.tsx @@ -1,9 +1,10 @@ // Modules import React, { useContext, useState, useEffect } from "react"; import { UserContext } from "../context/UserContext"; +import { IconContext } from "react-icons"; // Icons -import { CgDetailsLess } from "react-icons/cg"; +import { FaAlignLeft } from "react-icons/fa"; import { userContextType } from "../types/user"; const Details = () => { @@ -14,7 +15,10 @@ const Details = () => {
- + + + +

Details

diff --git a/src/pages/Posts.tsx b/src/pages/Posts.tsx index c4a4ef2..709d133 100644 --- a/src/pages/Posts.tsx +++ b/src/pages/Posts.tsx @@ -227,7 +227,7 @@ const Posts = () => { {load ? : null} - {posts[0] ? ( + {posts ? ( posts[0].id !== -1 ? ( showAll ? ( posts.map((post: PostType) => { diff --git a/src/pages/Source.tsx b/src/pages/Source.tsx index cba4a44..ef1ab42 100644 --- a/src/pages/Source.tsx +++ b/src/pages/Source.tsx @@ -8,6 +8,7 @@ import { Link } from "react-router-dom"; import { PostContext } from "../context/PostContext"; // Icons +import { FaRegPlusSquare } from "react-icons/fa"; import { FaSourcetree } from "react-icons/fa"; import { FaRegEdit } from "react-icons/fa"; import { FaTrash } from "react-icons/fa"; @@ -103,6 +104,10 @@ const Source = () => {
+ + + Create source +