diff --git a/framework/vendure/api/operations/get-all-blogs.ts b/framework/vendure/api/operations/get-all-blogs.ts index 37857f488..92a6ef9dc 100644 --- a/framework/vendure/api/operations/get-all-blogs.ts +++ b/framework/vendure/api/operations/get-all-blogs.ts @@ -7,7 +7,11 @@ export type BlogVariables = { excludeBlogIds?: string[], take?: number, skip?:number, - isFeatured?:{eq?:Boolean}, + filter?:{ + isFeatured?:{ + eq?:Boolean + } + }, } export default function getAllBlogsOperation({ @@ -35,9 +39,8 @@ export default function getAllBlogsOperation({ excludeBlogIds: vars.excludeBlogIds, options: { take: vars.take, - skip: vars.skip, filter: { - isFeatured: vars.isFeatured + isFeatured: vars.filter?.isFeatured } }, } diff --git a/framework/vendure/api/operations/get-featured-blog.ts b/framework/vendure/api/operations/get-featured-blog.ts index 8f26e4288..b6fbd8904 100644 --- a/framework/vendure/api/operations/get-featured-blog.ts +++ b/framework/vendure/api/operations/get-featured-blog.ts @@ -5,7 +5,12 @@ import { getFeatuedBlogQuery } from '../../utils/queries/get-featued-query' export type BlogVariables = { take?: number, - skip?:number + skip?:number, + filter?:{ + isFeatured?:{ + eq?:Boolean + } + }, } export default function getFeaturedBlogOperation({ @@ -31,6 +36,9 @@ export default function getFeaturedBlogOperation({ const variables = { options: { take: vars.take, + filter: { + isFeatured: vars.filter?.isFeatured + } }, } const { data } = await config.fetch(query, { diff --git a/package.json b/package.json index 8474be667..acca8bea2 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "nextjs-commerce", "version": "1.0.0", "scripts": { - "dev": "NODE_OPTIONS='--inspect' PORT=3005 next dev", + "dev": "set NODE_OPTIONS='--inspect' && set PORT=3005 && next dev", "dev-windows": "set NODE_OPTIONS='--inspect' && set PORT=3005 && next dev", "build": "next build", "start": "PORT=3005 next start", diff --git a/pages/blogs.tsx b/pages/blogs.tsx index 8f07e2d5b..ad002445a 100644 --- a/pages/blogs.tsx +++ b/pages/blogs.tsx @@ -11,23 +11,26 @@ interface Props { blogsResult: { blogs?: BlogCardProps[],featuredBlog?: BlogCardProps[] }, totalItems: number } -export default function BlogsPage({blogsResult,totalItems}:Props) { +export default function BlogsPage( { blogsResult, totalItems }:Props ) { + let date = new Date(blogsResult.featuredBlog?.[0]?.createdAt ?? '' ); let fullDate = date.toLocaleString('en-us', { month: 'long' }) + " " + date.getDate()+","+date.getFullYear(); - + return( <> + { (blogsResult.featuredBlog?.length !=0 ) && + } ) @@ -58,7 +61,7 @@ export async function getStaticProps({ }) // Blogs - const idFeaturedBlog = featuredBlogs[0].id; + const idFeaturedBlog = featuredBlogs?.[0]?.id; const blogsPromise = commerce.getAllBlogs({ variables: { excludeBlogIds: [idFeaturedBlog], diff --git a/src/components/modules/blogs/BlogsList/BlogsList.tsx b/src/components/modules/blogs/BlogsList/BlogsList.tsx deleted file mode 100644 index a5f26b3f7..000000000 --- a/src/components/modules/blogs/BlogsList/BlogsList.tsx +++ /dev/null @@ -1,100 +0,0 @@ -import { useRouter } from 'next/router' -import React, { useEffect, useState,useRef } from 'react' -import CardBlog, { BlogCardProps } from 'src/components/common/CardBlog/CardBlog' -import PaginationCommon from 'src/components/common/PaginationCommon/PaginationCommon' -import { DEFAULT_BLOG_PAGE_SIZE, QUERY_KEY, ROUTE } from 'src/utils/constanst.utils' -import s from "./BlogsList.module.scss" -import { QueryBlogs } from '@framework/schema' -import { useGetBlogList } from 'src/components/hooks/blog' -import { getPageFromQuery } from 'src/utils/funtion.utils' -import { ListProductCardSkeleton } from 'src/components/common' - -interface BlogsListProps { - blogList?: BlogCardProps[], - total?: number, - idFeatured?:string -} - - - -const BlogsList = ({ blogList,total,idFeatured }:BlogsListProps) => { - - const DEFAULT_BLOGS_ARGS = { - excludeBlogIds: [idFeatured], - options:{ - take: DEFAULT_BLOG_PAGE_SIZE, - filter: { - isFeatured: { - eq:false - } - } - } - } - - const router = useRouter(); - const [initialQueryFlag, setInitialQueryFlag] = useState(true) - - const [optionQueryBlog, setOptionQueryBlog] = useState(DEFAULT_BLOGS_ARGS) - const { blogs, totalItems, loading } = useGetBlogList(optionQueryBlog); - - - - - const onPageChange = (page:number) => { - router.push({ - pathname: ROUTE.BLOGS, - query: { - ...router.query, - [QUERY_KEY.PAGE]: page - } - }, - undefined, { shallow: true } - ) - } - - // skip - const firstRender = useRef(true); - useEffect(() => { - firstRender.current = false; - const query = { ...DEFAULT_BLOGS_ARGS } as QueryBlogs; - const page = getPageFromQuery(router.query[QUERY_KEY.PAGE] as string); - query.options.skip = page * DEFAULT_BLOG_PAGE_SIZE; - setOptionQueryBlog(query); - setInitialQueryFlag(false); - },[router.query]) - - - let data; - if(initialQueryFlag == true){ - data = blogList; - }else{ - data = blogs - } - - return ( -
-
- {(!initialQueryFlag && loading && !blogs) && } -
- - { - data?.map((blog,index)=> { - return( -
- {blog.isPublish && !blog.isFeatured && } -
- ) - }) - } -
-
- -
-
-
- ) -} - -export default BlogsList - -