@sberdevices/plasma-temple
Version:
SberDevices CanvasApp Templates.
46 lines • 3.01 kB
TypeScript
import React from 'react';
import { CartItemImageProps } from '../CartItemImage/CartItemImage';
import { CartItemDetailsProps } from '../CartItemDetails/CartItemDetails';
import { CartItemQuantityButtonProps } from '../CartItemQuantityButton/CartItemQuantityButton';
import { CartItemType } from '../types';
import { AnyObject, Currency } from '../../../types';
export interface CartItemProps<ID = unknown, T extends AnyObject = AnyObject> {
/** Данные товара */
item: CartItemType<ID, T>;
/** Индекс товара в корзине */
index: number;
/** Валюта */
currency?: Currency;
/** Флаг определяет возможность увеличить количетво товара в корзине */
plusDisabled?: boolean;
/** Флаг определяет наличие числового бейджа на изображении товара */
withBadge?: boolean;
/**
* Дефолтное изображение.
* Используется при отсутствии изображения или при ошибке загрузки изображения
*/
defaultImage?: string;
className?: string;
/** Кастомный элемент изображения товара */
imageComponent?: React.ComponentType<CartItemImageProps<ID, T>>;
/** Кастомный элемент деталей товара */
detailsComponent?: React.ComponentType<CartItemDetailsProps<ID, T>>;
/** Кастомный элемент кнопок изменения количества товара в корзине */
quantityButtonComponent?: React.ComponentType<CartItemQuantityButtonProps<ID, T>>;
/** Колбэк вызываемый при клике по кнопке добавить */
onPlus: (item: CartItemType<ID, T>) => void;
/** Колбэк вызываемый при клике по кнопке уменьшить */
onMinus: (item: CartItemType<ID, T>) => void;
/**
* Колбэк вызываемый при клике по кнопке удалить. Отображается если `item.disabled = true`.
* Также вызывается если количество товара в корзине равно 0.
*/
onRemove?: (item: CartItemType<ID, T>) => void;
/** Колбэк вызываемый при клике по изображению товара */
onImageClick?: (item: CartItemType<ID, T>) => void;
}
declare function CartItemComponent<ID = unknown, T extends AnyObject = AnyObject>({ item, index, currency, plusDisabled, withBadge, defaultImage, onPlus, onMinus, onRemove, onImageClick: onItemClick, className, imageComponent, detailsComponent, quantityButtonComponent, }: CartItemProps<ID, T>): JSX.Element;
/** Компонент отдельной позиции в корзине */
export declare const CartItem: typeof CartItemComponent;
export {};
//# sourceMappingURL=CartItem.d.ts.map