ov25-ui
Version:
A UI configurator for OV25 product visualization
44 lines (43 loc) • 1.23 kB
TypeScript
import * as React from 'react';
import { Swatch } from '../../contexts/ov25-ui-context.js';
export interface Variant {
id: string;
groupId?: string;
optionId?: string;
name: string;
price: number;
image: string;
blurHash: string;
data?: any;
isSelected?: boolean;
swatch?: Swatch;
}
export type DrawerSizes = 'closed' | 'small' | 'large';
export interface VariantGroup {
groupName: string;
variants: Variant[];
}
export interface VariantCardProps {
variant: Variant;
onSelect: (variant: Variant) => void;
index: number;
isMobile: boolean;
isGrouped?: boolean;
}
interface ProductVariantsProps {
isOpen: boolean;
onClose: () => void;
title: string;
variants: Variant[] | VariantGroup[];
onSelect: (variant: Variant) => void;
VariantCard?: React.ComponentType<VariantCardProps>;
onAccordionChange?: () => void;
gridDivide?: number;
drawerSize?: DrawerSizes;
onNext?: () => void;
onPrevious?: () => void;
basis?: string;
isMobile: boolean;
}
export declare const ProductVariants: ({ variants, onSelect, drawerSize, gridDivide, VariantCard, basis, isMobile, }: ProductVariantsProps) => React.JSX.Element;
export {};