@shopgate/engage
Version:
Shopgate's ENGAGE library.
3 lines • 2.12 kB
JavaScript
function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};return _extends.apply(this,arguments);}import React,{useMemo,useCallback,useEffect}from'react';import{css}from'glamor';import{themeConfig}from'@shopgate/engage';import{FormBuilder,SurroundPortals}from'@shopgate/engage/components';import{isIOSTheme}from'@shopgate/engage/core';import{StylePresets}from'@shopgate/engage/components/Form';import Section from"../Checkout/CheckoutSection";import{useCheckoutContext}from"../../hooks/common";import generateFormConfig from"./GuestCheckoutOptIn.config";import{CHECKOUT_MARKETING_OPTIN}from"../../constants";var variables=themeConfig.variables;var styles={root:css(_extends({padding:"0 ".concat(variables.gap.big,"px")},!isIOSTheme()?{paddingBottom:variables.gap.xbig}:{})).toString(),form:css(_extends({' .guestCheckoutOptInMarketingOptIn .checkbox':{paddingBottom:0}},StylePresets.OUTLINED_FORM_FIELDS)).toString(),section:css({margin:variables.gap.big}).toString()};/**
* @returns {JSX}
*/var GuestCheckoutOptIn=function GuestCheckoutOptIn(){var _useCheckoutContext=useCheckoutContext(),defaultOptInFormState=_useCheckoutContext.defaultOptInFormState,optInFormSetValues=_useCheckoutContext.optInFormSetValues,setUpdateOptIns=_useCheckoutContext.setUpdateOptIns;/* eslint-disable react-hooks/exhaustive-deps */useEffect(function(){setUpdateOptIns();},[]);/* eslint-enable react-hooks/exhaustive-deps */var formConfig=useMemo(function(){return generateFormConfig();},[]);var handleUpdate=useCallback(function(values){optInFormSetValues(values);},[optInFormSetValues]);return React.createElement(SurroundPortals,{portalName:CHECKOUT_MARKETING_OPTIN},React.createElement("div",{className:styles.root},React.createElement(Section,{hasForm:true},React.createElement(FormBuilder,{className:styles.form,name:"GuestCheckoutOptIn",config:formConfig,defaults:defaultOptInFormState,handleUpdate:handleUpdate}))));};export default GuestCheckoutOptIn;