UNPKG

use-shopify

Version:

React hooks to work with Shopify's Storefront API

46 lines (45 loc) 1.36 kB
import { DocumentNode } from 'graphql'; import { Product, Collection, QueryFunction } from '../types'; import { SearchQueryResult } from './searchQuery'; /** * API */ export interface UseSearchQueries { SEARCH_QUERY: string | DocumentNode; } export interface UseSearchConfig { collections: boolean; products: boolean; pageSize: number; memoize: boolean; debounce: number; } interface UseSearchArguments { query: QueryFunction; config?: Partial<UseSearchConfig>; queries?: Partial<UseSearchQueries>; } export interface UseSearchValues extends Pick<SearchState, 'searchTerm' | 'loading' | 'products' | 'collections' | 'results' | 'hasMoreResults'> { search: (searchTerm?: string) => Promise<void>; setSearchTerm: (searchTerm?: string) => void; reset: () => void; } /** * State */ export interface SearchState { loading: boolean; products: Product[]; collections: Collection[]; results: SearchQueryResult[]; config: UseSearchConfig; searchTerm: string; hasMoreResults: boolean; stale: boolean; lastSearchTerm: string | void; } /** * useSearch */ export declare const useSearch: <ExpectedResult extends SearchQueryResult>({ query: userQueryFunction, config: userConfig, queries, }: UseSearchArguments) => UseSearchValues; export {};