Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
import { ReactNode } from 'react'
import { DetailedListDataType } from '@skava/ui/dist/components/molecules/DetailedList'
import { IncrementerStateType } from '@skava/ui/dist/inputs/Incrementer'

export interface ProductItemRenderProp extends Function {
  (props: ProductItemProps): ReactNode
}

export interface QuantityProps {
  value?: string | number
  isIncrementer?: boolean
}

export interface RatingProps {
  value?: string | number
  reviewCount?: number
}

export interface PriceProps {
  salePrice?: string | number
  regPrice?: string | number
}

export interface TotalPriceProps {
  totalPrice?: string | number
  savePrice?: string | number
}

interface FavoriteArgs {
  isSelected?: boolean
  identifier?: string
  label?: string
}

interface FavoriteHandler extends Function {
  (args?: FavoriteArgs): void
}

interface PromoProps {
  name?: string
}

interface ProductItemProps {
  className?: string
  children?: ReactNode
  type?: string
  align?: string
  identifier: string
  url?: string
  image: string
  productCaption?: string
  hasFavoriteIcon?: boolean
  isFavoriteActive?: boolean
  brandName?: string
  name?: string
  rating?: RatingProps
  quantity?: QuantityProps
  price?: PriceProps
  totalPriceDetails?: TotalPriceProps
  facet?: DetailedListDataType
  productDetailsOrder?: Array<string>
  promoOffer?: Array<PromoProps>
  dataQa?: string

  // handlers
  onFavoriteClick?: FavoriteHandler
  onQuantityChange?: (args: IncrementerStateType) => void
  onPromoOfferClick?: (args: PromoProps) => void

  // renderProps
  renderPromoDetails?: ProductItemRenderProp
  renderTotal?: ProductItemRenderProp
  renderCheckoutQuantity?: ProductItemRenderProp
  renderQuantity?: ProductItemRenderProp
  renderFacetDetails?: ProductItemRenderProp
  renderRatings?: ProductItemRenderProp
  renderProductName?: ProductItemRenderProp
  renderBrandName?: ProductItemRenderProp
  renderPrice?: ProductItemRenderProp
  renderImage?: ProductItemRenderProp
  renderBox?: ProductItemRenderProp
  renderWrapper?: ProductItemRenderProp
  renderProductDetailsBox?: ProductItemRenderProp
}

export { ProductItemProps, FavoriteArgs }