import styles from '../styles/styles.module.css'; import { useProduct } from '../hooks/useProduct'; import React, { createContext } from 'react'; import { ProductContextProps, Product, onChangeArgs, InitialValues, ProductCardHandlers } from '../interfaces/interfaces'; export const productContext = createContext({} as ProductContextProps); const { Provider } = productContext; export interface Props { product: Product; // children?: React.ReactElement | React.ReactElement[]; children: (args: ProductCardHandlers) => JSX.Element, className?: string; style?: React.CSSProperties; onChange?: (args: onChangeArgs) => void; value?: number; initialValues?: InitialValues } export const ProductCard = ({ children, product, className, style, onChange, value, initialValues }: Props) => { const { counter, increaseBy, maxCount, isMaxCountReached, reset } = useProduct({ onChange, product, value, initialValues }); return (
{ children({ count: counter, isMaxCountReached, maxCount: initialValues?.maxCount, product, increaseBy, reset }) }
) }