Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Enable Payments terms page with updated terms #3879

Merged
merged 55 commits into from
Jul 30, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
a751401
set defualt step to terms for testing
Jag96 Jul 1, 2021
9ed0010
get collapsible demo working on native
Jag96 Jul 2, 2021
2569859
get collapsible working on web
Jag96 Jul 2, 2021
d30d2bb
use collapsibleSection structure
Jag96 Jul 2, 2021
cd8c11f
remove unnecessary import
Jag96 Jul 2, 2021
c481caf
pass data from terms page
Jag96 Jul 2, 2021
d7f4b47
move shared propTypes and defaults to file
Jag96 Jul 2, 2021
533230a
clean up inconsistencies
Jag96 Jul 2, 2021
b1c2551
get basic table/spacing views added
Jag96 Jul 2, 2021
febe9e4
split into long and short form pages
Jag96 Jul 3, 2021
4d8d775
add content and initial short form styling
Jag96 Jul 3, 2021
e8f0db3
use title
Jag96 Jul 6, 2021
1dd8628
add short form terms rows
Jag96 Jul 7, 2021
2c2233a
add links
Jag96 Jul 7, 2021
7d60c18
update styles, remove unnecessary termsPage
Jag96 Jul 7, 2021
8c19923
add spacing for long form
Jag96 Jul 7, 2021
3af9007
style collapsible component on web
Jag96 Jul 10, 2021
51b8def
get mobile collapsible component styles added
Jag96 Jul 10, 2021
3fd1513
add termsData and map function
Jag96 Jul 13, 2021
c10e872
add all long form content and en.js translations
Jag96 Jul 13, 2021
3c19afd
update long form spanish translations
Jag96 Jul 13, 2021
6fbe0cb
add listOfAllFees translation
Jag96 Jul 13, 2021
13a8a1f
translate short form
Jag96 Jul 13, 2021
067ca47
show open and close arrow for sections
Jag96 Jul 13, 2021
f4a98e9
style mobile collapsibles
Jag96 Jul 13, 2021
256bbfb
remove duplicated code
Jag96 Jul 13, 2021
7066646
use same name
Jag96 Jul 13, 2021
ffe4400
merge main
Jag96 Jul 14, 2021
1e12498
remove unnecessary view
Jag96 Jul 14, 2021
19a81a3
add more information section
Jag96 Jul 15, 2021
796e964
translate to spanish
Jag96 Jul 15, 2021
08bc872
lint
Jag96 Jul 15, 2021
c187568
merge main
Jag96 Jul 28, 2021
bf531fa
restyle short term row
Jag96 Jul 28, 2021
d632cb4
update spacing for row
Jag96 Jul 28, 2021
2e4070c
fix remaining short terms
Jag96 Jul 28, 2021
241f19e
re-style supporting text for long form
Jag96 Jul 28, 2021
373cefa
re-style long form
Jag96 Jul 28, 2021
bdfffc5
remove unused code, add some translations
Jag96 Jul 28, 2021
cb2a792
update withdrawal section content
Jag96 Jul 28, 2021
7fb67df
fix spacing bug for margins
Jag96 Jul 28, 2021
3b986cf
add arrow and printer icons
Jag96 Jul 29, 2021
7f14c69
fix links on mobile
Jag96 Jul 29, 2021
6b05d70
move checkboxes inside scrollview
Jag96 Jul 29, 2021
be34b12
fix right align issue on mobile
Jag96 Jul 29, 2021
b97340b
dry short terms views
Jag96 Jul 29, 2021
a8081b2
dry long terms views
Jag96 Jul 29, 2021
a1b6d5b
remove testing todos, remove unused styles
Jag96 Jul 29, 2021
339d50e
move some constantss
Jag96 Jul 29, 2021
d8e487b
fix heading space bug on mobile
Jag96 Jul 29, 2021
6a43c24
merge main
Jag96 Jul 29, 2021
87bdb54
update podfile.lock
Jag96 Jul 29, 2021
bccf156
remove extra space above button
Jag96 Jul 29, 2021
d9be8b9
merge main
Jag96 Jul 30, 2021
aca33b0
rename function
Jag96 Jul 30, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions assets/images/arrow-up.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
13 changes: 13 additions & 0 deletions assets/images/printer.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
32 changes: 16 additions & 16 deletions ios/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -872,7 +872,7 @@ SPEC CHECKSUMS:
DoubleConversion: cf9b38bf0b2d048436d9a82ad2abe1404f11e7de
EXHaptics: 337c160c148baa6f0e7166249f368965906e346b
FBLazyVector: 7b423f9e248eae65987838148c36eec1dbfe0b53
FBReactNativeSpec: 884d4cc2b011759361797a4035c47e10099393b5
FBReactNativeSpec: 825b0f0851f5cc5c6268a920286281f62fc96c37
Firebase: 54cdc8bc9c9b3de54f43dab86e62f5a76b47034f
FirebaseABTesting: 4cb61aeeb50f60680af1c01fff781dfaf9293916
FirebaseAnalytics: 4751d6a49598a2b58da678cc07df696bcd809ab9
Expand All @@ -899,9 +899,9 @@ SPEC CHECKSUMS:
Onfido: 116a268e4cb8b767c15285e8071c2e8304673cdf
onfido-react-native-sdk: b8f1b7cbe1adab6479d735275772390161630dcd
OpenSSL-Universal: 1aa4f6a6ee7256b83db99ec1ccdaa80d10f9af9b
Permission-LocationAccuracy: e8adff9ede1b23b43b7054a4500113d515fc87a8
Permission-LocationAlways: 7f7f373d086af7a81b2f4f20d65d29266ca2043b
Permission-LocationWhenInUse: 3ae82a9feb5da4e94e386dba17c7dd3531af9feb
Permission-LocationAccuracy: 76669f87b4c276f5ae803cc0ddd1862a4c0e9dd8
Permission-LocationAlways: a274bc04bb386068782468dbdaca3859f51634ca
Permission-LocationWhenInUse: 3a2b0dbc167d79e8e920a4377ff9520cdc108407
Plaid: f55c6acdc249245c6778a4045757eb4e839cca61
PromisesObjC: 68159ce6952d93e17b2dfe273b8c40907db5ba58
Protobuf: 7327d4444215b5f18e560a97f879ff5503c4581c
Expand All @@ -917,15 +917,15 @@ SPEC CHECKSUMS:
React-jsiexecutor: 124e8f99992490d0d13e0649d950d3e1aae06fe9
React-jsinspector: 500a59626037be5b3b3d89c5151bc3baa9abf1a9
react-native-config: d8b45133fd13d4f23bd2064b72f6e2c08b2763ed
react-native-document-picker: 0e3602a4064da040321bafad6848d8b0edcb1d55
react-native-document-picker: f2f73db94328c84e22144e369fb4a3ede47bc1f5
react-native-flipper: 1943b82f2e494c77b741eb1ed257b6734a334b83
react-native-image-picker: 4089335b89b625d4e34d53fb249c48a7a791b3ea
react-native-netinfo: 52cf0ee8342548a485e28f4b09e56b477567244d
react-native-image-picker: 474cf2c33c2b6671da53d293a16c97995f0aec15
react-native-netinfo: 30fb89fa913c342be82a887b56e96be6d71201dd
react-native-pdf: 4b5a9e4465a6a3b399e91dc4838eb44ddf716d1f
react-native-plaid-link-sdk: 1a6593e2d3d790e8113c29178d883eb883f8c032
react-native-progress-bar-android: ce95a69f11ac580799021633071368d08aaf9ad8
react-native-progress-view: 5816e8a6be812c2b122c6225a2a3db82d9008640
react-native-safe-area-context: 01158a92c300895d79dee447e980672dc3fb85a6
react-native-plaid-link-sdk: 59b7376efca9f00e9693321c5cf7c6ab2c567635
react-native-progress-bar-android: be43138ab7da30d51fc038bafa98e9ed594d0c40
react-native-progress-view: 21b1e29e70c7559c16c9e0a04c4adc19fce6ede2
react-native-safe-area-context: 79fea126c6830c85f65947c223a5e3058a666937
React-perflogger: aad6d4b4a267936b3667260d1f649b6f6069a675
React-RCTActionSheet: fc376be462c9c8d6ad82c0905442fd77f82a9d2a
React-RCTAnimation: ba0a1c3a2738be224a08092fa7f1b444ab77d309
Expand All @@ -939,17 +939,17 @@ SPEC CHECKSUMS:
React-runtimeexecutor: ff951a0c241bfaefc4940a3f1f1a229e7cb32fa6
ReactCommon: bedc99ed4dae329c4fcf128d0c31b9115e5365ca
rn-fetch-blob: f065bb7ab7fb48dd002629f8bdcb0336602d3cba
RNBootSplash: 3123ba68fe44d8be09a014e89cc8f0f55b68a521
RNBootSplash: 24175aa28fe203b10c48dc34e78d946fd33c77af
RNCAsyncStorage: 8324611026e8dc3706f829953aa6e3899f581589
RNCClipboard: 5e299c6df8e0c98f3d7416b86ae563d3a9f768a3
RNCMaskedView: 138134c4d8a9421b4f2bf39055a79aa05c2d47b1
RNCClipboard: 41d8d918092ae8e676f18adada19104fa3e68495
RNCMaskedView: fc29d354a40316a990e8fb46391f08aea829c3aa
RNCPicker: 6780c753e9e674065db90d9c965920516402579d
RNFBAnalytics: 8ba84c2d31c64374d054c8621b998f25145ffddc
RNFBApp: 64c90ab78b6010ed5c3ade026dfe5ff6442c21fd
RNFBCrashlytics: 1de18b8cc36d9bcf86407c4a354399228cc84a61
RNFBPerf: e3a7269f573a4787810a32de51647cdcbe08dfb4
RNGestureHandler: 9b7e605a741412e20e13c512738a31bd1611759b
RNPermissions: eb94f9fdc0a8ecd02fcce0676d56ffb1395d41e1
RNPermissions: 4c8a37b4dde50f1f152bf8cd08c4a43d2355829e
RNReanimated: 833ebd229b31e18a8933ebd0cd744a0f47d88c42
RNScreens: e8e8dd0588b5da0ab57dcca76ab9b2d8987757e0
RNSVG: ce9d996113475209013317e48b05c21ee988d42e
Expand All @@ -966,7 +966,7 @@ SPEC CHECKSUMS:
UMReactNativeAdapter: 7b458ca3d4497b5114e6bb766b223432bad22d8a
UMSensorsInterface: 50439b47826e716a514cbd7384aebe9ab4fde5f4
UMTaskManagerInterface: 482155764886069beb1bc7fcf6036f12e4ad0751
urbanairship-react-native: d415a12e67ba93bf3ce914df9a310b66a88a5cc3
urbanairship-react-native: a05a913d6f9559141d477ff4d380bcd616b5c59d
Yoga: a7de31c64fe738607e7a3803e3f591a4b1df7393
YogaKit: f782866e155069a2cca2517aafea43200b01fd5a

Expand Down
10 changes: 10 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -72,9 +72,11 @@
"prop-types": "^15.7.2",
"pusher-js": "^7.0.0",
"react": "^17.0.2",
"react-collapse": "^5.1.0",
"react-dom": "^17.0.2",
"react-native": "0.64.1",
"react-native-bootsplash": "^3.2.0",
"react-native-collapsible": "^1.6.0",
"react-native-config": "^1.4.0",
"react-native-document-picker": "^5.1.0",
"react-native-gesture-handler": "1.9.0",
Expand Down
10 changes: 10 additions & 0 deletions src/CONST.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions src/components/CollapsibleSection/Collapsible/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import Collapsible from 'react-collapse';

export default Collapsible;
26 changes: 26 additions & 0 deletions src/components/CollapsibleSection/Collapsible/index.native.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import CollapsibleRN from 'react-native-collapsible';
import PropTypes from 'prop-types';
import React from 'react';

const propTypes = {
/** Whether the section should start expanded. False by default */
isOpened: PropTypes.bool,

/** Children to display inside the Collapsible component */
children: PropTypes.node.isRequired,
};

const defaultProps = {
isOpened: false,
};

const Collapsible = props => (
<CollapsibleRN collapsed={!props.isOpened}>
{props.children}
</CollapsibleRN>
);

Collapsible.displayName = 'Collapsible';
Collapsible.propTypes = propTypes;
Collapsible.defaultProps = defaultProps;
export default Collapsible;
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import PropTypes from 'prop-types';

const propTypes = {
/** Title of the Collapsible section */
title: PropTypes.string.isRequired,

/** Whether the section should start expanded. False by default */
isExpanded: PropTypes.bool,

/** Children to display inside the Collapsible component */
children: PropTypes.node.isRequired,
};

const defaultProps = {
isExpanded: false,
};

export {propTypes, defaultProps};
53 changes: 53 additions & 0 deletions src/components/CollapsibleSection/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
import React from 'react';
import {View, TouchableOpacity} from 'react-native';
import Collapsible from './Collapsible';
import Text from '../Text';
import {propTypes, defaultProps} from './CollapsibleSectionPropTypes';
import styles from '../../styles/styles';
import Icon from '../Icon';
import {DownArrow, UpArrow} from '../Icon/Expensicons';

class CollapsibleSection extends React.Component {
constructor(props) {
super(props);
this.toggleSection = this.toggleSection.bind(this);
this.state = {
isExpanded: this.props.isExpanded,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I didn't see where we are passing this prop and think maybe this should just be false?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

True, we aren't currently using that prop value so I can just remove it and update the initial state to be false here

};
}

/**
* Expands/collapses the section
*/
toggleSection() {
this.setState(prevState => ({
isExpanded: !prevState.isExpanded,
}));
}

render() {
const src = this.state.isExpanded ? UpArrow : DownArrow;
stitesExpensify marked this conversation as resolved.
Show resolved Hide resolved

return (
<View style={styles.mt4}>
<TouchableOpacity onPress={this.toggleSection} style={[styles.pb4, styles.flexRow]}>
<Text style={[styles.flex1, styles.textStrong]}>
{this.props.title}
</Text>
<Icon src={src} />
</TouchableOpacity>
<View style={styles.collapsibleSectionBorder} />

<Collapsible isOpened={this.state.isExpanded}>
<View>
{this.props.children}
</View>
</Collapsible>
</View>
);
}
}

CollapsibleSection.defaultProps = defaultProps;
CollapsibleSection.propTypes = propTypes;
export default CollapsibleSection;
6 changes: 5 additions & 1 deletion src/components/Icon/Expensicons.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,14 +40,16 @@ import Phone from '../../../assets/images/phone.svg';
import Pin from '../../../assets/images/pin.svg';
import PinCircle from '../../../assets/images/pin-circle.svg';
import Plus from '../../../assets/images/plus.svg';
import Printer from '../../../assets/images/printer.svg';
import Profile from '../../../assets/images/profile.svg';
import Receipt from '../../../assets/images/receipt.svg';
import Send from '../../../assets/images/send.svg';
import SignOut from '../../../assets/images/sign-out.svg';
import Sync from '../../../assets/images/sync.svg';
import Trashcan from '../../../assets/images/trashcan.svg';
import Users from '../../../assets/images/users.svg';
import UpArrow from '../../../assets/images/arrow-up.svg';
import Upload from '../../../assets/images/upload.svg';
import Users from '../../../assets/images/users.svg';
import Venmo from '../../../assets/images/venmo.svg';
import Wallet from '../../../assets/images/wallet.svg';
import Workspace from '../../../assets/images/workspace-default-avatar.svg';
Expand Down Expand Up @@ -95,12 +97,14 @@ export {
Pin,
PinCircle,
Plus,
Printer,
Profile,
Receipt,
Send,
SignOut,
Sync,
Trashcan,
UpArrow,
Upload,
Users,
Venmo,
Expand Down
63 changes: 62 additions & 1 deletion src/languages/en.js
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ export default {
dateFormat: 'YYYY-MM-DD',
send: 'Send',
notifications: 'Notifications',
na: 'N/A',
noResultsFound: 'No results found',
timePrefix: 'It\'s',
conjunctionFor: 'for',
Expand Down Expand Up @@ -418,10 +419,70 @@ export default {
headerTitle: 'Terms and Fees',
haveReadAndAgree: 'I have read and agree to receive ',
electronicDisclosures: 'electronic disclosures',
agreeToThe: 'I agree to the ',
agreeToThe: 'I agree to the',
walletAgreement: 'Wallet Agreement',
enablePayments: 'Enable Payments',
termsMustBeAccepted: 'Terms must be accepted',
feeAmountZero: '$0',
monthlyFee: 'Monthly Fee',
inactivity: 'Inactivity',
electronicFundsInstantFee: '1.5%',
electronicFundsInstantFeeMin: 'Min $0.25',
noOverdraftOrCredit: 'No overdraft/credit feature.',
electronicFundsWithdrawal: 'Electronic Funds Withdrawal',
instant: 'Instant',
standard: 'Standard',
shortTermsForm: {
expensifyPaymentsAccount: 'The Expensify Payments Account is issues by The Bancorp Bank.',
perPurchase: 'Per Purchase',
atmWithdrawal: 'ATM Withdrawal',
cashReload: 'Cash Reload',
inNetwork: 'In-network',
outOfNetwork: 'out-of-network',
atmBalanceInquiry: 'ATM balance inquiry',
inOrOutOfNetwork: 'In-network or out-of-network',
customerService: 'Customer Service',
automatedOrLive: 'Automated or live agent',
afterTwelveMonths: 'After 12 months with no transactions',
weChargeOneFee: 'We charge 1 type of fee.',
fdicInsurance: 'Your funds are eligible for FDIC insurance.',
generalInfo: 'For general information about prepaid accounts, visit',
conditionsDetails: 'Find details and conditions for all fees and services by visiting',
conditionsPhone: 'or calling +1 833-400-0904.',
},
longTermsForm: {
listOfAllFees: 'All Expensify Payments account fees:',
typeOfFeeHeader: 'Type of Fee',
feeAmountHeader: 'Fee Amount',
moreDetailsHeader: 'More Details',
openingAccountTitle: 'Opening An Account',
openingAccountDetails: 'There is no fee to create an account.',
monthlyFeeDetails: 'There is no monthly fee',
customerServiceTitle: 'Customer service',
customerServiceDetails: 'There are no customer service fees.',
inactivityDetails: 'There is no inactivity fee.',
sendingFundsTitle: 'Sending funds to another account holder',
sendingFundsDetails: 'There is no fee to send funds to another account holder using your balance, '
+ 'bank account, or debit card.',
electronicFundsStandardDetails: 'There is no fee to transfer funds from your Expensify Payments Account '
+ 'to your bank account using the standard option. This transfer usually completes within 1-3 business'
+ ' days.',
electronicFundsInstantDetails: 'There is a fee to transfer funds from your Expensify Payments Account to '
+ 'your linked debit card using the instant transfer option. This transfer usually completes within'
+ 'several minutes. The fee is 1.5% of the transfer amount (with a minimum fee of $0.25).',
fdicInsuranceBancorp: 'Your funds are eligible for FDIC insurance. Your funds will be held at or '
+ 'transferred to The Bancorp Bank, an FDIC-insured institution. Once there, your funds are insured up '
+ 'to $250,000 by the FDIC in the event The Bancorp Bank fails. See',
fdicInsuranceBancorp2: 'for details.',
contactExpensifyPayments: 'Contact Expensify Payments by calling +1 833-400-0904, by email at',
contactExpensifyPayments2: 'or sign in at',
generalInformation: 'For general information about prepaid accounts, visit',
generalInformation2: 'If you have a complaint about a prepaid account, call the Consumer Financial '
+ 'Protection Bureau at 1-855-411-2372 or visit',
printerFriendlyView: 'View printer-friendly version',
automated: 'Automated',
liveAgent: 'Live Agent',
},
},
activateStep: {
headerTitle: 'Enable Payments',
Expand Down
Loading