@sberdevices/plasma-temple
Version:
SberDevices CanvasApp Templates.
45 lines • 3.14 kB
TypeScript
import React from 'react';
import { AnyObject, Insets } from '../../types';
import { UnifiedComponentProps } from '../../registry/types';
import { CartItemProps } from './CartItem/CartItem';
import { CartItemType, CartState } from './types';
import { CartOrderProps } from './CartOrder/CartOrder@common';
import { CartItemListProps } from './CartItemList/CartItemList@common';
declare type PlatformComponents<ID = unknown, T extends AnyObject = AnyObject> = {
CartItemList: CartItemListProps<ID, T>;
CartOrder: CartOrderProps<ID, T>;
};
export interface CartProps<ID = unknown, T extends AnyObject = AnyObject> {
/** Контент для отображения пустой корзины */
emptyCart?: React.ReactNode;
/**
* Отступы вокруг корзины, на текущий момент используется только отступ снизу,
* для позиционирования кнопки в мобильной версии
*/
insets?: Partial<Insets>;
/**
* Дефолтное изображение для отдельной позиции в корзине.
* Используется при отсутствии изображения у элемента корзины или при ошибке загрузки изображения
*/
defaultItemImage?: string;
/** Недоступность кнопки оформления заказа */
checkoutDisabled?: boolean;
/** Кастомный компонент отдельной позиции в корзине */
cartItemComponent?: React.ComponentType<CartItemProps<ID, T>>;
/** Кастомный компонент информации о заказе в корзине */
cartOrderComponent?: React.ComponentType<CartOrderProps<ID, T>>;
/** Кастомный контент кнопки `Оформить заказ` */
checkoutButtonContent?: React.ReactNode;
/** Контент дополнительной информации */
additionalInfo?: React.ReactNode;
/** Дополнительня стилизация контейнера корзины */
className?: string;
/** Колбэк вызываемый при клике по кнопке `Оформить заказ` */
onCheckout: (cartState: CartState<ID, T>) => void;
/** Колбэк вызываемый при клике по изображению конкретной позиции в корзине */
onImageClick?: (item: CartItemType<ID, T>) => void;
}
export declare type CartComponent = <ID = unknown, T extends AnyObject = AnyObject>(props: CartProps<ID, T>) => React.ReactElement;
export declare function CartCommon<ID = unknown, T extends AnyObject = AnyObject>({ emptyCart, insets, defaultItemImage, checkoutDisabled, cartItemComponent, cartOrderComponent, checkoutButtonContent, additionalInfo, className, onCheckout, onImageClick, platformComponents: { CartItemList, CartOrder }, }: UnifiedComponentProps<CartProps<ID, T>, PlatformComponents<ID, T>>): React.ReactElement;
export {};
//# sourceMappingURL=Cart@common.d.ts.map