import React from 'react'; import Box from '@mui/material/Box'; import Typography from '@mui/material/Typography'; import Radio from '@mui/material/Radio'; import Checkbox from '@mui/material/Checkbox'; import { withI18n } from '../../i18n/withTranslation.js'; const DeliveryMethodSelector = ({ deliveryMethod, onChange, isPickupOnly, cartItems = [], t }) => { // Calculate cart value for free shipping threshold const cartValue = cartItems.reduce((total, item) => total + item.price * item.quantity, 0); const isFreeShipping = cartValue >= 100; const remainingForFreeShipping = Math.max(0, 100 - cartValue); const deliveryOptions = [ { id: 'DHL', name: 'DHL', description: isPickupOnly ? (t ? t('delivery.descriptions.notAvailable') : "nicht auswählbar weil ein oder mehrere Artikel nur abgeholt werden können") : isFreeShipping ? (t ? t('delivery.descriptions.standardFree') : 'Standardversand - KOSTENLOS ab 100€ Warenwert!') : (t ? t('delivery.descriptions.standard') : 'Standardversand'), price: isFreeShipping ? (t ? t('delivery.prices.free') : 'kostenlos') : (t ? t('delivery.prices.dhl') : '5,90 €'), disabled: isPickupOnly }, { id: 'DPD', name: 'DPD', description: isPickupOnly ? (t ? t('delivery.descriptions.notAvailable') : "nicht auswählbar weil ein oder mehrere Artikel nur abgeholt werden können") : isFreeShipping ? (t ? t('delivery.descriptions.standardFree') : 'Standardversand - KOSTENLOS ab 100€ Warenwert!') : (t ? t('delivery.descriptions.standard') : 'Standardversand'), price: isFreeShipping ? (t ? t('delivery.prices.free') : 'kostenlos') : (t ? t('delivery.prices.dpd') : '4,90 €'), disabled: isPickupOnly }, { id: 'Sperrgut', name: t ? t('delivery.methods.sperrgutName') : 'Sperrgut', description: t ? t('delivery.descriptions.bulky') : 'Für große und schwere Artikel', price: t ? t('delivery.prices.sperrgut') : '28,99 €', disabled: true, isCheckbox: true }, { id: 'Abholung', name: t ? t('delivery.methods.pickup') : 'Abholung in der Filiale', description: '', price: '' } ]; return ( <> {t ? t('delivery.selector.title') : 'Versandart wählen'} {deliveryOptions.map((option, index) => ( onChange({ target: { value: option.id } }) : undefined} > {option.isCheckbox ? ( ) : ( )} {option.price} ))} {/* Free shipping information */} {!isFreeShipping && remainingForFreeShipping > 0 && ( {t ? t('delivery.selector.freeShippingInfo') : '💡 Versandkostenfrei ab 100€ Warenwert!'} {t ? t('delivery.selector.remainingForFree', { amount: remainingForFreeShipping.toFixed(2).replace('.', ',') }) : `Noch ${remainingForFreeShipping.toFixed(2).replace('.', ',')}€ für kostenlosen Versand hinzufügen.`} )} {isFreeShipping && ( {t ? t('delivery.selector.congratsFreeShipping') : '🎉 Glückwunsch! Sie erhalten kostenlosen Versand!'} {t ? t('delivery.selector.cartQualifiesFree', { amount: cartValue.toFixed(2).replace('.', ',') }) : `Ihr Warenkorb von ${cartValue.toFixed(2).replace('.', ',')}€ qualifiziert sich für kostenlosen Versand.`} )} ); }; export default withI18n()(DeliveryMethodSelector);