diff --git a/app/page.tsx b/app/page.tsx index c6ed27e85..da51f0ca3 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -2,7 +2,7 @@ import { Carousel } from 'components/carousel'; import Grid from 'components/grid'; import Footer from 'components/layout/footer'; import ProductGridItems from 'components/layout/product-grid-items'; -import { getProducts } from 'lib/shopify'; +import { getLiveProducts } from 'lib/utils'; import { Suspense } from 'react'; export const runtime = 'edge'; @@ -15,8 +15,7 @@ export const metadata = { }; export default async function HomePage() { - const products = await getProducts({}); - const liveProducts = products.filter((product) => !product.tags.includes('hidden-product')) + const liveProducts = await getLiveProducts({}); return ( <> @@ -24,7 +23,7 @@ export default async function HomePage() { {liveProducts.length > 0 ? ( - + ) : null} diff --git a/app/search/[collection]/page.tsx b/app/search/[collection]/page.tsx index 25416d544..e198eb6a6 100644 --- a/app/search/[collection]/page.tsx +++ b/app/search/[collection]/page.tsx @@ -1,10 +1,11 @@ -import { getCollection, getCollectionProducts } from 'lib/shopify'; +import { getCollection } from 'lib/shopify'; import { Metadata } from 'next'; import { notFound } from 'next/navigation'; import Grid from 'components/grid'; import ProductGridItems from 'components/layout/product-grid-items'; import { defaultSort, sorting } from 'lib/constants'; +import { getLiveCollectionProducts } from 'lib/utils'; export const runtime = 'edge'; @@ -33,7 +34,7 @@ export default async function CategoryPage({ }) { const { sort } = searchParams as { [key: string]: string }; const { sortKey, reverse } = sorting.find((item) => item.slug === sort) || defaultSort; - const products = await getCollectionProducts({ collection: params.collection, sortKey, reverse }); + const products = await getLiveCollectionProducts({ collection: params.collection, sortKey, reverse }); return (
diff --git a/app/search/page.tsx b/app/search/page.tsx index 5f4b60c01..45605e984 100644 --- a/app/search/page.tsx +++ b/app/search/page.tsx @@ -1,7 +1,7 @@ import Grid from 'components/grid'; import ProductGridItems from 'components/layout/product-grid-items'; import { defaultSort, sorting } from 'lib/constants'; -import { getProducts } from 'lib/shopify'; +import { getLiveProducts } from 'lib/utils'; export const runtime = 'edge'; @@ -18,7 +18,7 @@ export default async function SearchPage({ const { sort, q: searchValue } = searchParams as { [key: string]: string }; const { sortKey, reverse } = sorting.find((item) => item.slug === sort) || defaultSort; - const products = await getProducts({ sortKey, reverse, query: searchValue }); + const products = await getLiveProducts({ sortKey, reverse, query: searchValue }); const resultsText = products.length > 1 ? 'results' : 'result'; return ( diff --git a/lib/utils.ts b/lib/utils.ts index 3fa32280b..261cceea8 100644 --- a/lib/utils.ts +++ b/lib/utils.ts @@ -1,4 +1,5 @@ import { ReadonlyURLSearchParams } from 'next/navigation'; +import { getCollectionProducts, getProducts } from './shopify'; export const createUrl = (pathname: string, params: URLSearchParams | ReadonlyURLSearchParams) => { const paramsString = params.toString(); @@ -6,3 +7,15 @@ export const createUrl = (pathname: string, params: URLSearchParams | ReadonlyUR return `${pathname}${queryString}`; }; + +export async function getLiveProducts(query: Parameters[0]) { + const products = await getProducts(query); + const liveProducts = products.filter((product) => !product.tags.includes('hidden-product')); + return liveProducts; +} + +export async function getLiveCollectionProducts(query: Parameters[0]) { + const products = await getCollectionProducts(query); + const liveProducts = products.filter((product) => !product.tags.includes('hidden-product')); + return liveProducts; +} \ No newline at end of file