4
0
forked from crowetic/commerce

Update use-search.tsx

This commit is contained in:
cond0r 2021-02-12 10:00:34 +02:00
parent 8d801ce5d7
commit 469ed2cdfb

View File

@ -1,13 +1,10 @@
import useCommerceSearch from '@commerce/products/use-search' import useCommerceSearch from '@commerce/products/use-search'
import { import { getAllProductsQuery } from '@framework/utils/queries'
getAllProductsQuery,
getCollectionProductsQuery,
} from '@framework/utils/queries'
import type { Product } from 'framework/bigcommerce/schema' import type { Product } from 'framework/bigcommerce/schema'
import type { HookFetcher } from '@commerce/utils/types' import type { HookFetcher } from '@commerce/utils/types'
import type { SwrOptions } from '@commerce/utils/use-data' import type { SwrOptions } from '@commerce/utils/use-data'
import type { ProductEdge } from '@framework/schema' import type { ProductConnection, ProductEdge } from '@framework/schema'
import getSearchVariables from '@framework/utils/get-search-variables' import getSearchVariables from '@framework/utils/get-search-variables'
@ -30,26 +27,20 @@ export type SearchProductsData = {
} }
export const fetcher: HookFetcher< export const fetcher: HookFetcher<
SearchRequestProductsData, SearchProductsData,
SearchProductsInput SearchProductsInput
> = (options, input, fetch) => { > = async (options, input, fetch) => {
return fetch({ const resp = await fetch({
query: options?.query, query: options?.query,
method: options?.method, method: options?.method,
variables: { variables: getSearchVariables(input),
...getSearchVariables(input), })
},
}).then(
(resp): SearchProductsData => {
const edges = resp.products?.edges const edges = resp.products?.edges
return { return {
products: edges?.map(({ node: p }: ProductEdge) => normalizeProduct(p)), products: edges?.map(({ node: p }: ProductEdge) => normalizeProduct(p)),
found: !!edges?.length, found: !!edges?.length,
} }
} }
)
}
export function extendHook( export function extendHook(
customFetcher: typeof fetcher, customFetcher: typeof fetcher,