|
|
@@ -4,22 +4,15 @@ import Grid from "@/components/theme/ui/grid/Grid";
|
|
|
import { isArray } from "@/utils/type-guards";
|
|
|
import { serverGraphqlFetch } from "@utils/bagisto/index";
|
|
|
import {
|
|
|
- GET_PRODUCTS,
|
|
|
- // GET_PRODUCTS_PAGINATION,
|
|
|
- // GET_FILTER_PRODUCTS,
|
|
|
SEARCH_PRODUCTS,
|
|
|
} from "@/graphql";
|
|
|
-import {
|
|
|
- cachedGraphQLRequest,
|
|
|
- // getFilterAttributes,
|
|
|
-} from "@/utils/hooks/useCache";
|
|
|
+
|
|
|
import { generateMetadataForPage, buildProductFilters } from "@/utils/helper";
|
|
|
import SortOrder from "@/components/theme/filters/SortOrder";
|
|
|
import { SortByFields } from "@/utils/constants";
|
|
|
// import MobileFilter from "@/components/theme/filters/MobileFilter";
|
|
|
// import FilterList from "@/components/theme/filters/FilterList";
|
|
|
import {
|
|
|
- ProductsResponse,
|
|
|
SearchProductsResponse,
|
|
|
SearchProductsVariables,
|
|
|
} from "@/components/catalog/type";
|
|
|
@@ -33,61 +26,7 @@ const ProductGridItems = dynamicImport(
|
|
|
);
|
|
|
|
|
|
export const dynamicParams = true;
|
|
|
-// 获取全站商品
|
|
|
-export async function generateStaticParams() {
|
|
|
- try {
|
|
|
- const itemsPerPage = 8;
|
|
|
- const commonSearches = [""];
|
|
|
- const params = [];
|
|
|
- for (const query of commonSearches) {
|
|
|
- // 获取默认产品回头换成 you may like 的产品
|
|
|
- const { data } = await cachedGraphQLRequest<ProductsResponse>(
|
|
|
- "search",
|
|
|
- GET_PRODUCTS,
|
|
|
- {
|
|
|
- query: query,
|
|
|
- first: 1,
|
|
|
- sortKey: "CREATED_AT",
|
|
|
- reverse: true,
|
|
|
- },
|
|
|
- );
|
|
|
-
|
|
|
- const totalCount = data?.products?.totalCount || 0;
|
|
|
- const totalPages = Math.ceil(totalCount / itemsPerPage);
|
|
|
- let cursor: string | undefined;
|
|
|
-
|
|
|
- for (let i = 0; i < totalPages; i++) {
|
|
|
- const pageParams: { page: string; cursor?: string } = {
|
|
|
- page: String(i + 1),
|
|
|
- };
|
|
|
- if (i > 0 && cursor) {
|
|
|
- pageParams.cursor = cursor;
|
|
|
- }
|
|
|
- params.push(pageParams);
|
|
|
- if (i < totalPages - 1) {
|
|
|
- const { data: pageData } =
|
|
|
- await cachedGraphQLRequest<ProductsResponse>(
|
|
|
- "search",
|
|
|
- GET_PRODUCTS,
|
|
|
- {
|
|
|
- query: query,
|
|
|
- first: itemsPerPage,
|
|
|
- sortKey: "CREATED_AT",
|
|
|
- reverse: true,
|
|
|
- ...(cursor && { after: cursor }),
|
|
|
- },
|
|
|
- );
|
|
|
- cursor = pageData?.products?.pageInfo?.endCursor;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
- return params;
|
|
|
- } catch (error) {
|
|
|
- console.error("Error generating static params:", error);
|
|
|
- return [];
|
|
|
- }
|
|
|
-}
|
|
|
// SEO+分享
|
|
|
export async function generateMetadata({
|
|
|
searchParams,
|
|
|
@@ -149,19 +88,7 @@ export default async function SearchPage({
|
|
|
reverse: selectedSort.reverse,
|
|
|
},
|
|
|
});
|
|
|
- // dataPromise = cachedGraphQLRequest<ProductsResponse>(
|
|
|
- // "search",
|
|
|
- // GET_FILTER_PRODUCTS,
|
|
|
- // {
|
|
|
- // query: searchValue,
|
|
|
- // filter: filterInput,
|
|
|
- // ...(beforeCursor
|
|
|
- // ? { last: itemsPerPage, before: beforeCursor }
|
|
|
- // : { first: itemsPerPage, after: afterCursor }),
|
|
|
- // sortKey: selectedSort.sortKey,
|
|
|
- // reverse: selectedSort.reverse,
|
|
|
- // },
|
|
|
- // );
|
|
|
+
|
|
|
} else {
|
|
|
dataPromise = (async () => {
|
|
|
let currentAfterCursor: string | undefined = afterCursor;
|
|
|
@@ -182,16 +109,7 @@ export default async function SearchPage({
|
|
|
reverse: selectedSort.reverse,
|
|
|
},
|
|
|
});
|
|
|
- // await cachedGraphQLRequest<ProductsResponse>(
|
|
|
- // "search",
|
|
|
- // GET_PRODUCTS_PAGINATION,
|
|
|
- // {
|
|
|
- // query: searchValue,
|
|
|
- // first: currentPage * itemsPerPage,
|
|
|
- // sortKey: selectedSort.sortKey,
|
|
|
- // reverse: selectedSort.reverse,
|
|
|
- // },
|
|
|
- // );
|
|
|
+
|
|
|
currentAfterCursor = cursorData?.search?.pageInfo?.endCursor;
|
|
|
// console.log("currentAfterCursoraaaaa:",currentAfterCursor);
|
|
|
}
|
|
|
@@ -210,14 +128,7 @@ export default async function SearchPage({
|
|
|
reverse: selectedSort.reverse,
|
|
|
},
|
|
|
});
|
|
|
- // cachedGraphQLRequest<ProductsResponse>("search", GET_PRODUCTS, {
|
|
|
- // query: searchValue,
|
|
|
- // ...(beforeCursor
|
|
|
- // ? { last: itemsPerPage, before: beforeCursor }
|
|
|
- // : { first: itemsPerPage, after: currentAfterCursor }),
|
|
|
- // sortKey: selectedSort.sortKey,
|
|
|
- // reverse: selectedSort.reverse,
|
|
|
- // });
|
|
|
+
|
|
|
})();
|
|
|
}
|
|
|
|