/** @jsx jsx */ import { FC, Fragment } from 'react' import { Label, Radio, Box, jsx } from '@vtex/store-ui' import { useIntl } from '@vtex/gatsby-plugin-i18n' import { ShippingInfo } from './ShippingInfo' import { DeliveryOptionsAvailability } from './DeliveryOptionsAvailability' import { slugify } from './utils/slugify' import { DeliveryOption } from './types' interface CustomProps { numberOfItems: number numberOfUnavailableItems: number options: DeliveryOption[] selectDeliveryOption: (option: string) => void } export const ShippingOptions: FC = ({ numberOfItems, numberOfUnavailableItems, options = [], selectDeliveryOption, }) => { const intl = useIntl() const handleChange = (event: React.FormEvent) => { selectDeliveryOption(event.currentTarget.value) } const allItemsUnavailable = numberOfUnavailableItems === numberOfItems return ( {numberOfUnavailableItems > 0 && !allItemsUnavailable && ( {intl.formatMessage( { id: 'shipping-calculator.options-for-remaining-products' }, { numberOfOptions: options.length, numberOfItems: numberOfItems - numberOfUnavailableItems, } )} )} {options && options.length > 0 && options.map((option, i) => { const optionId = slugify(`shipping-option-${option.id}`) // eslint-disable-next-line const isLast = i + 1 >= options.length return ( ) })} ) }