UNPKG

984 BTypeScriptView Raw
1import { Product, ProductVariant, ProductVariantOption } from '../../types';
2declare type VariantValidation = 'outOfStock' | 'valid' | 'incomplete' | 'invalid';
3/**
4 * Given a product, this hook provides methods for getting and setting variants on that product,
5 * as well as methods to validate the current and proposed combination of values.
6 */
7export declare function useProductVariants(product: Product, { initialVariant }?: {
8 initialVariant?: ProductVariantOption;
9}): {
10 selectedVariant: ProductVariant;
11 validation: VariantValidation;
12 getSelectedValue: (option: ProductVariantOption) => string;
13 selectValue: (value: string, option: ProductVariantOption) => void;
14 validateSelection: (value: string, option: ProductVariantOption) => VariantValidation;
15 getVariantForSelection: (value: string, option: ProductVariantOption) => ProductVariant;
16 missingOptions: ProductVariantOption[];
17 getMissingOptions: () => ProductVariantOption[];
18};
19export {};