diff --git a/web/cashtab/src/components/Configure/Configure.js b/web/cashtab/src/components/Configure/Configure.js
--- a/web/cashtab/src/components/Configure/Configure.js
+++ b/web/cashtab/src/components/Configure/Configure.js
@@ -318,6 +318,31 @@
}
`;
+const ContactListActions = styled.div`
+ align-items: center;
+ @media (max-width: 500px) {
+ width: 100%;
+ justify-content: center;
+ }
+
+ button {
+ cursor: pointer;
+ background: transparent;
+ border: 1px solid #fff;
+ box-shadow: none;
+ color: #fff;
+ border-radius: 3px;
+ opacity: 0.6;
+ transition: all 200ms ease-in-out;
+
+ :hover {
+ opacity: 1;
+ background: ${props => props.theme.eCashBlue};
+ border-color: ${props => props.theme.eCashBlue};
+ }
+ }
+`;
+
const AWRow = styled.div`
padding: 10px 0;
display: flex;
@@ -834,6 +859,33 @@
changeCashtabSettings('sendModal', checkedState);
};
+ const exportContactList = contactListArray => {
+ if (!contactListArray) {
+ errorNotification('Unable to export contact list');
+ return;
+ }
+
+ // convert object array into csv data
+ let csvContent =
+ 'data:text/csv;charset=utf-8,' +
+ contactListArray.map(
+ element => '\n' + element.name + '|' + element.address,
+ );
+
+ // encode csv
+ var encodedUri = encodeURI(csvContent);
+
+ // hidden DOM node to set the default file name
+ var csvLink = document.createElement('a');
+ csvLink.setAttribute('href', encodedUri);
+ csvLink.setAttribute(
+ 'download',
+ 'Cashtab_Contacts_' + wallet.name + '.csv',
+ );
+ document.body.appendChild(csvLink);
+ csvLink.click();
+ };
+
return (