UNPKG

@shopgate/engage

Version:
9 lines 4.32 kB
function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}import React,{useMemo}from'react';import{connect}from'react-redux';import PropTypes from'prop-types';import{css}from'glamor';import{getCheckoutBillingAddress,getCheckoutShippingAddress}from'@shopgate/engage/checkout/selectors/order';import{i18n,historyPush}from'@shopgate/engage/core';import{responsiveMediaQuery}from'@shopgate/engage/styles';import{RippleButton,ResponsiveContainer}from'@shopgate/engage/components';import{ResponsiveBackButton}from"../ResponsiveBackButton";import AddressCard from"../../../account/components/Profile/ProfileAddressCard";import{useProfileContext}from"../../../account/components/Profile/Profile.provider";import{useAddressBook}from"../../hooks/common";import{ADDRESS_TYPE_SHIPPING,ADDRESS_TYPE_BILLING,CHECKOUT_ADDRESS_BOOK_CONTACT_PATTERN}from"../../constants";/** * @param {Object} state State. * @returns {Object} */var mapStateToProps=function mapStateToProps(state){return{shippingAddress:getCheckoutShippingAddress(state),billingAddress:getCheckoutBillingAddress(state)};};/** * @param {Object} dispatch Dispatch * @returns {Object} */var mapDispatchToProps=function mapDispatchToProps(dispatch){return{push:function push(props){return dispatch(historyPush(props));}};};var styles={title:css({color:'var(--color-text-high-emphasis)',lineHeight:2.5,fontSize:17,fontWeight:'600'}).toString(),container:css({display:'flex',flexDirection:'row',flexWrap:'wrap',margin:-4,padding:16}).toString(),headline:css({padding:16,fontSize:'2.125rem',fontWeight:'normal',margin:0,lineHeight:'2.25rem'}).toString(),button:css({'&&':_defineProperty({marginTop:8,marginRight:16,backgroundColor:'var(--color-primary)',borderRadius:5,fontSize:14,textTransform:'none',padding:0},responsiveMediaQuery('<md',{webOnly:false}),{width:'100%',marginRight:0})}).toString(),ripple:css({padding:'8px 16px'}).toString(),actions:css(_defineProperty({display:'flex',justifyContent:'flex-end',flexDirection:'row',padding:'0 16px 16px'},responsiveMediaQuery('<md',{webOnly:false}),{flex:1})).toString()};/** * @returns {JSX} */var AddressList=function AddressList(_ref){var push=_ref.push,shippingAddress=_ref.shippingAddress,billingAddress=_ref.billingAddress;var _useProfileContext=useProfileContext(),contacts=_useProfileContext.contacts,_deleteContact=_useProfileContext.deleteContact,_editContact=_useProfileContext.editContact;var _useAddressBook=useAddressBook(),type=_useAddressBook.type,updateOrderWithContact=_useAddressBook.updateOrderWithContact;var title=useMemo(function(){if([ADDRESS_TYPE_SHIPPING,ADDRESS_TYPE_BILLING].includes(type)){return i18n.text("titles.checkout_addresses_".concat(type));}return'';},[type]);var selectedContactId=useMemo(function(){if(type===ADDRESS_TYPE_SHIPPING){return(shippingAddress===null||shippingAddress===void 0?void 0:shippingAddress.customerContactId)||null;}if(type===ADDRESS_TYPE_BILLING){return(billingAddress===null||billingAddress===void 0?void 0:billingAddress.customerContactId)||null;}return null;},[billingAddress,shippingAddress,type]);return React.createElement("div",null,React.createElement(ResponsiveContainer,{webOnly:true,breakpoint:">xs"},React.createElement(ResponsiveBackButton,null),React.createElement("h1",{className:styles.headline},title)),React.createElement("div",{className:styles.container},contacts&&contacts.map(function(contact){return React.createElement(AddressCard,{key:contact.id,contact:contact,selected:contact.id===selectedContactId,selectContact:function selectContact(){return updateOrderWithContact(contact.id);},deleteContact:function deleteContact(){return _deleteContact(contact.id);},editContact:function editContact(){return _editContact(contact);}});})),React.createElement("div",{className:styles.actions},React.createElement(RippleButton,{className:styles.button,rippleClassName:styles.ripple,type:"primary",onClick:function onClick(){return push({pathname:"".concat(CHECKOUT_ADDRESS_BOOK_CONTACT_PATTERN).replace(':type',type)});}},i18n.text('account.profile.address_book.add'))));};AddressList.defaultProps={shippingAddress:null,billingAddress:null};export default connect(mapStateToProps,mapDispatchToProps)(AddressList);