UNPKG

@shopgate/engage

Version:
5 lines 1.83 kB
import React,{useMemo,useCallback}from'react';import PropTypes from'prop-types';import{FormBuilder}from'@shopgate/engage/components';import Section from"../../../checkout/components/Checkout/CheckoutSection";import{useRegistration}from"../../hooks";import{ELEMENT_ID_CUSTOMER_ATTRIBUTES}from"../../constants";import generateFormConfig from"./RegistrationFormExtra.config";import{form,section}from"./RegistrationContent.style";/** * The RegistrationFormExtra component. * @param {Object} props The component props * @returns {JSX} */var RegistrationFormExtra=function RegistrationFormExtra(_ref){var isGuest=_ref.isGuest;var _useRegistration=useRegistration(isGuest),defaultExtraFormState=_useRegistration.defaultExtraFormState,updateExtraForm=_useRegistration.updateExtraForm,customerAttributes=_useRegistration.customerAttributes,extraFormValidationErrors=_useRegistration.extraFormValidationErrors,supportedCountries=_useRegistration.supportedCountries,countrySortOrder=_useRegistration.countrySortOrder,userLocation=_useRegistration.userLocation;var formConfig=useMemo(function(){return generateFormConfig({customerAttributes:customerAttributes,isGuest:isGuest,supportedCountries:supportedCountries,countrySortOrder:countrySortOrder,userLocation:userLocation});},[countrySortOrder,customerAttributes,isGuest,supportedCountries,userLocation]);var handleUpdate=useCallback(function(values){updateExtraForm(values);},[updateExtraForm]);return React.createElement(Section,{className:section,hasForm:true,id:ELEMENT_ID_CUSTOMER_ATTRIBUTES},React.createElement(FormBuilder,{className:form,name:"RegistrationExtra",config:formConfig,defaults:defaultExtraFormState,validationErrors:extraFormValidationErrors,handleUpdate:handleUpdate}));};RegistrationFormExtra.defaultProps={isGuest:false};export default RegistrationFormExtra;