import React, { Component } from "react"; import { Box, Typography, TextField, Checkbox, FormControlLabel, Button } from "@mui/material"; import AddressForm from "./AddressForm.js"; import DeliveryMethodSelector from "./DeliveryMethodSelector.js"; import PaymentMethodSelector from "./PaymentMethodSelector.js"; import OrderSummary from "./OrderSummary.js"; import { withI18n } from "../../i18n/withTranslation.js"; class CheckoutForm extends Component { render() { const { paymentMethod, invoiceAddress, deliveryAddress, useSameAddress, saveAddressForFuture, addressFormErrors, termsAccepted, note, deliveryMethod, hasStecklinge, isPickupOnly, deliveryCost, cartItems, displayError, isCompletingOrder, preSubmitError, onInvoiceAddressChange, onDeliveryAddressChange, onUseSameAddressChange, onSaveAddressForFutureChange, onTermsAcceptedChange, onNoteChange, onDeliveryMethodChange, onPaymentMethodChange, onCompleteOrder, } = this.props; return ( <> {paymentMethod !== "cash" && ( <> } label={ {this.props.t ? this.props.t('checkout.saveForFuture') : 'Für zukünftige Bestellungen speichern'} } sx={{ mb: 2 }} /> )} {hasStecklinge && ( {this.props.t ? this.props.t('checkout.pickupDate') : 'Für welchen Termin ist die Abholung der Stecklinge gewünscht?'} )} {(deliveryMethod === "DHL" || deliveryMethod === "DPD") && ( <> } label={ {this.props.t ? this.props.t('checkout.sameAddress') : 'Lieferadresse ist identisch mit Rechnungsadresse'} } sx={{ mb: 2 }} /> {!useSameAddress && ( )} )} } label={ {this.props.t ? this.props.t('checkout.termsAccept') : 'Ich habe die AGBs, die Datenschutzerklärung und die Bestimmungen zum Widerrufsrecht gelesen'} } sx={{ mb: 3, mt: 2 }} /> {/* @note Reserve space for error message to prevent layout shift */} {displayError && ( {displayError} )} ); } } export default withI18n()(CheckoutForm);