|
@@ -31,7 +31,7 @@ export const dynamicParams = true;
|
|
|
export async function generateMetadata({
|
|
export async function generateMetadata({
|
|
|
searchParams,
|
|
searchParams,
|
|
|
}: {
|
|
}: {
|
|
|
- searchParams?: Promise<{ [key: string]: string | string[] | undefined }>;
|
|
|
|
|
|
|
+ searchParams?: Promise<{ q: string }>;
|
|
|
}) {
|
|
}) {
|
|
|
const params = await searchParams;
|
|
const params = await searchParams;
|
|
|
const searchQuery = params?.q as string | undefined;
|
|
const searchQuery = params?.q as string | undefined;
|
|
@@ -48,7 +48,13 @@ export async function generateMetadata({
|
|
|
export default async function SearchPage({
|
|
export default async function SearchPage({
|
|
|
searchParams,
|
|
searchParams,
|
|
|
}: {
|
|
}: {
|
|
|
- searchParams?: Promise<{ [key: string]: string | string[] | undefined }>;
|
|
|
|
|
|
|
+ searchParams?: Promise<{
|
|
|
|
|
+ q: string;
|
|
|
|
|
+ page: string;
|
|
|
|
|
+ sort: string;
|
|
|
|
|
+ cursor: string;
|
|
|
|
|
+ before: string;
|
|
|
|
|
+ }>;
|
|
|
}) {
|
|
}) {
|
|
|
const params = await searchParams;
|
|
const params = await searchParams;
|
|
|
const {
|
|
const {
|
|
@@ -56,9 +62,7 @@ export default async function SearchPage({
|
|
|
page,
|
|
page,
|
|
|
cursor,
|
|
cursor,
|
|
|
before,
|
|
before,
|
|
|
- } = (params || {}) as {
|
|
|
|
|
- [key: string]: string;
|
|
|
|
|
- };
|
|
|
|
|
|
|
+ } = (params || {});
|
|
|
const itemsPerPage = 8;
|
|
const itemsPerPage = 8;
|
|
|
const currentPage = page ? parseInt(page) - 1 : 0;
|
|
const currentPage = page ? parseInt(page) - 1 : 0;
|
|
|
const sortValue = params?.sort || "name-asc";
|
|
const sortValue = params?.sort || "name-asc";
|
|
@@ -78,7 +82,7 @@ export default async function SearchPage({
|
|
|
query: SEARCH_PRODUCTS,
|
|
query: SEARCH_PRODUCTS,
|
|
|
variables: {
|
|
variables: {
|
|
|
suggest: true,
|
|
suggest: true,
|
|
|
- query: searchValue,
|
|
|
|
|
|
|
+ query: searchValue || '',
|
|
|
filter: filterInput,
|
|
filter: filterInput,
|
|
|
first: 8,
|
|
first: 8,
|
|
|
...(beforeCursor
|
|
...(beforeCursor
|
|
@@ -103,7 +107,7 @@ export default async function SearchPage({
|
|
|
query: SEARCH_PRODUCTS,
|
|
query: SEARCH_PRODUCTS,
|
|
|
variables: {
|
|
variables: {
|
|
|
suggest: true,
|
|
suggest: true,
|
|
|
- query: searchValue,
|
|
|
|
|
|
|
+ query: searchValue || '',
|
|
|
first: currentPage * itemsPerPage,
|
|
first: currentPage * itemsPerPage,
|
|
|
sortKey: selectedSort.sortKey,
|
|
sortKey: selectedSort.sortKey,
|
|
|
reverse: selectedSort.reverse,
|
|
reverse: selectedSort.reverse,
|
|
@@ -120,7 +124,7 @@ export default async function SearchPage({
|
|
|
query: SEARCH_PRODUCTS,
|
|
query: SEARCH_PRODUCTS,
|
|
|
variables: {
|
|
variables: {
|
|
|
suggest: true,
|
|
suggest: true,
|
|
|
- query: searchValue,
|
|
|
|
|
|
|
+ query: searchValue || '',
|
|
|
...(beforeCursor
|
|
...(beforeCursor
|
|
|
? { last: itemsPerPage, before: beforeCursor }
|
|
? { last: itemsPerPage, before: beforeCursor }
|
|
|
: { first: itemsPerPage, after: currentAfterCursor }),
|
|
: { first: itemsPerPage, after: currentAfterCursor }),
|