@shopgate/engage
Version:
Shopgate's ENGAGE library.
6 lines • 2.55 kB
JavaScript
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 from'react';import{connect}from'react-redux';import PropTypes from'prop-types';import{css}from'glamor';import{i18n,historyPush}from'@shopgate/engage/core';import{responsiveMediaQuery}from'@shopgate/engage/styles';import{RippleButton}from'@shopgate/engage/components';import AddressCard from"./ProfileAddressCard";import{useProfileContext}from"./Profile.provider";import{PROFILE_ADDRESS_PATH}from"../../constants/routes";/**
* @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}).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'},responsiveMediaQuery('<md',{webOnly:false}),{flex:1})).toString()};/**
* @returns {JSX}
*/var ProfileAddressBook=function ProfileAddressBook(_ref){var push=_ref.push;var _useProfileContext=useProfileContext(),contacts=_useProfileContext.contacts,_deleteContact=_useProfileContext.deleteContact,_editContact=_useProfileContext.editContact;return React.createElement("div",null,React.createElement("span",{className:styles.title},i18n.text('account.profile.address_book.title')),React.createElement("div",{className:styles.container},contacts&&contacts.map(function(contact){return React.createElement(AddressCard,{key:contact.id,contact:contact,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:PROFILE_ADDRESS_PATH});}},i18n.text('account.profile.address_book.add'))));};export default connect(null,mapDispatchToProps)(ProfileAddressBook);