UNPKG

@shopgate/engage

Version:
5 lines 2.21 kB
import React,{useMemo,useCallback}from'react';import PropTypes from'prop-types';import classNames from'classnames';import{FormBuilder}from'@shopgate/engage/components';import{useRegistration}from"../../hooks";import Section from"../../../checkout/components/Checkout/CheckoutSection";import{ELEMENT_ID_SHIPPING_CONTACT}from"../../constants";import generateFormConfig from"./RegistrationFormShipping.config";import{form,section,shippingFormSection}from"./RegistrationContent.style";/** * The RegistrationFormShipping component. * @param {Object} props The component props * @returns {JSX} */var RegistrationFormShipping=function RegistrationFormShipping(_ref){var isGuest=_ref.isGuest;var _useRegistration=useRegistration(isGuest),supportedCountries=_useRegistration.supportedCountries,countrySortOrder=_useRegistration.countrySortOrder,userLocation=_useRegistration.userLocation,defaultShippingFormState=_useRegistration.defaultShippingFormState,shippingFormValidationErrors=_useRegistration.shippingFormValidationErrors,updateShippingForm=_useRegistration.updateShippingForm,isShippingFormVisible=_useRegistration.isShippingFormVisible,isShippingAddressSelectionEnabled=_useRegistration.isShippingAddressSelectionEnabled,numberOfAddressLines=_useRegistration.numberOfAddressLines;var formConfig=useMemo(function(){return generateFormConfig({supportedCountries:supportedCountries,countrySortOrder:countrySortOrder,userLocation:userLocation,numberOfAddressLines:numberOfAddressLines});},[countrySortOrder,numberOfAddressLines,supportedCountries,userLocation]);var handleUpdate=useCallback(function(values){updateShippingForm(values);},[updateShippingForm]);if(!isShippingAddressSelectionEnabled||!isShippingFormVisible){return null;}return React.createElement(Section,{title:"registration.headlines.shipping_address",className:classNames(section,shippingFormSection),hasForm:true,id:ELEMENT_ID_SHIPPING_CONTACT},React.createElement(FormBuilder,{className:form,name:"RegistrationShipping",config:formConfig,defaults:defaultShippingFormState,validationErrors:shippingFormValidationErrors,handleUpdate:handleUpdate}));};RegistrationFormShipping.defaultProps={isGuest:false};export default RegistrationFormShipping;