From 0e6ef23cbf521c89cabdb391219f5a00ca907a22 Mon Sep 17 00:00:00 2001 From: VividTruthKeeper Date: Thu, 22 Sep 2022 15:59:05 +0500 Subject: [PATCH] posts page filter and reset btn --- src/assets/styles/_posts.scss | 28 ++++++++ src/components/Aside.tsx | 2 +- src/pages/Posts.tsx | 118 +++++++++++++++++++++++++--------- 3 files changed, 115 insertions(+), 33 deletions(-) diff --git a/src/assets/styles/_posts.scss b/src/assets/styles/_posts.scss index 7fcb32c..137f3b1 100644 --- a/src/assets/styles/_posts.scss +++ b/src/assets/styles/_posts.scss @@ -165,6 +165,34 @@ flex-direction: column; } } + + &__reset { + color: #fff; + + max-width: 30rem; + font-size: 1.6rem; + border-radius: 0.5rem; + background: #2fad8c; + padding: 0.5rem 2rem; + transition: 0.3s all ease; + text-align: center; + height: 67%; + min-width: 20rem; + cursor: pointer; + @include transition-std; + + &:hover { + @include transition-std; + background-color: #268a6f; + border: 0.1rem solid #268a6f; + } + + &__btn { + display: flex; + flex-direction: row; + align-items: flex-end; + } + } } .post { diff --git a/src/components/Aside.tsx b/src/components/Aside.tsx index 9a9442f..eea54a8 100644 --- a/src/components/Aside.tsx +++ b/src/components/Aside.tsx @@ -32,7 +32,7 @@ const Aside = ({ aside, setAside }: Props) => { -

Elements

+

Posts

  • { const [load, setLoad] = useState(false); const contextValue: ContextType = useContext(PostContext); @@ -39,6 +44,10 @@ const Posts = () => { perPage: 10, pageNumber: 1, }); + const [search, setSearch] = useState({ + type: "fil_title", + query: "", + }); const [params, setParams] = useState({ id: "asc", @@ -49,14 +58,13 @@ const Posts = () => { created: "asc", updated: "asc", }); - const [search, setSearch] = useState(""); useEffect(() => { const key = sort as keyof typeof params; getPosts( setLoad, setPosts, - `?sortBy=${sort}.${params[key]}&category=${category}&strLimit=${page.perPage}&strOffset=${page.pageNumber}&filter=${search}` + `?sortBy=${sort}.${params[key]}&category=${category}&strLimit=${page.perPage}&strOffset=${page.pageNumber}&${search.type}=${search.query}` ); }, [params, sort, page, search, category]); @@ -119,17 +127,55 @@ const Posts = () => { +
    + + +
    + ) => { - setSearch(e.target.value); + setSearch({ ...search, query: e.target.value }); }} />
    +
    + +
    @@ -268,34 +314,42 @@ const Posts = () => { {load ? : null} {posts ? ( - posts[0].id !== -1 ? ( - posts.map((post: PostType) => { - return ( - - - - - - - - - - - - ); - }) + posts.length > 0 ? ( + posts[0].id !== -1 ? ( + posts.map((post: PostType) => { + return ( + + + + + + + + + + + + ); + }) + ) : ( + + + + ) ) : (
    {post.id}{post.category}{post.title} - - - - {parseDate(post.publish_date)[0]}{parseDate(post.createdAt)[0]}{parseDate(post.updatedAt)[0]}
    {post.id}{post.category}{post.title} + + + + {parseDate(post.publish_date)[0]}{parseDate(post.createdAt)[0]}{parseDate(post.updatedAt)[0]}
    + No posts +