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 version to 1.0.69-1 on staging #3618

Merged
merged 98 commits into from
Jun 16, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
98 commits
Select commit Hold shift + click to select a range
6e72ad1
update routes
Jag96 Jun 9, 2021
2a60ac7
update linkingConfig
Jag96 Jun 9, 2021
e01059d
add workspaceInvite page
Jag96 Jun 9, 2021
c255c9e
add placeholder values for spanish translations
Jag96 Jun 9, 2021
ba6e9ce
import withLocalize
Jag96 Jun 9, 2021
b87c128
add new screen and navigator
Jag96 Jun 9, 2021
89dd12f
update text, fix broken state
Jag96 Jun 9, 2021
41d45d3
style welcome message box
Jag96 Jun 9, 2021
39d1b51
get policy name showing up in welcome text
Jag96 Jun 9, 2021
0bde5fc
add Policy_Employees_Merge api command
Jag96 Jun 9, 2021
8be51d8
style
Jag96 Jun 9, 2021
c219c9e
add models
marcaaron Jun 10, 2021
5dfd8b3
new: modal types added
parasharrajat Jun 10, 2021
a530555
new : context menu modal added
parasharrajat Jun 10, 2021
c444633
replace popover with context menu popover in report actionitem
parasharrajat Jun 10, 2021
e2c64b9
added props to base modal to remove the backdrop
parasharrajat Jun 10, 2021
e842554
outside click close to Modal
parasharrajat Jun 10, 2021
18b9be0
fix: Prop types
parasharrajat Jun 10, 2021
80869c9
fix: props for contextmenu
parasharrajat Jun 10, 2021
6eac7d4
add BankAccount model
marcaaron Jun 10, 2021
cc78e01
update some consts
marcaaron Jun 10, 2021
c810c56
attempt to migrate stuff to a controller page for now while make sens…
marcaaron Jun 10, 2021
44f095a
add policyID to params
Jag96 Jun 11, 2021
04382bb
add API call for policyList
Jag96 Jun 11, 2021
b92ebaf
fix empty employeeList
Jag96 Jun 11, 2021
5604e30
pass data to invite, optimisitcally add user
Jag96 Jun 11, 2021
4f96379
sketch out plan
marcaaron Jun 11, 2021
4023ff8
insert personal details into onyx
Jag96 Jun 11, 2021
686db89
test mergeCollection bug
Jag96 Jun 11, 2021
99e0f81
move setupWithdrawalAccount into an action so that our views can pure…
marcaaron Jun 11, 2021
3319c16
move everything into actions clean up temp view
marcaaron Jun 11, 2021
ca91a0c
fix conflicts
marcaaron Jun 11, 2021
d61a525
fix conflicts and rename some things
marcaaron Jun 11, 2021
e966390
reorganize things a bit and fix incorrect API usage
marcaaron Jun 11, 2021
a7eaefe
dont pass achData
marcaaron Jun 11, 2021
4bebfbb
fix Permissions issue. rename goToStepID to goToWithdrawalStepID
marcaaron Jun 11, 2021
6836fe0
merge main
Jag96 Jun 11, 2021
76b67ce
use unmasked accountNumber
marcaaron Jun 11, 2021
d8e8120
get optimistic addition and fallback remove working
Jag96 Jun 11, 2021
2901551
insert formatted personalDetails
Jag96 Jun 11, 2021
c3b8007
clean up some TODOs
marcaaron Jun 11, 2021
e31e101
fix up some CONSTs
marcaaron Jun 11, 2021
25d16b8
pass default welcome if none is filled in
Jag96 Jun 11, 2021
77cc488
add privacy policy link
Jag96 Jun 11, 2021
36e5a97
fix propTypes and error messages
marcaaron Jun 11, 2021
b96c297
change BusinessBankAccountNewPage to BankAccountStep
marcaaron Jun 11, 2021
7cee97a
style
Jag96 Jun 11, 2021
661ee34
Fix comments style etc
marcaaron Jun 11, 2021
e4bd83e
Pulled latest changes
parasharrajat Jun 11, 2021
eb6c3f5
Added language selector in the preferences page
jasperhuangg Jun 12, 2021
3294d95
Added language selector in the preferences page
jasperhuangg Jun 12, 2021
845786d
Remove whitespace
jasperhuangg Jun 12, 2021
e01ae51
fix conflicts
marcaaron Jun 14, 2021
e85f587
fix new workspace modal
marcaaron Jun 14, 2021
d373ffb
refactor
parasharrajat Jun 14, 2021
1bce75b
removed unnecessary ContextMenuPopover
parasharrajat Jun 14, 2021
d818277
extra changes remvoed
parasharrajat Jun 14, 2021
825d108
make some requested changes
marcaaron Jun 14, 2021
c900d39
Make requested changes
marcaaron Jun 14, 2021
1b1e210
Make some requested changes
marcaaron Jun 15, 2021
04f28fe
merge main
Jag96 Jun 15, 2021
cc62bd2
add welcomeNote label
Jag96 Jun 15, 2021
a6d715b
match styles from mockup
Jag96 Jun 15, 2021
7e5937f
move page into workspace folder
Jag96 Jun 15, 2021
e8f1300
Update Spanish translation
jasperhuangg Jun 15, 2021
59ab488
show error on invite failure
Jag96 Jun 15, 2021
ff4f095
more style updates
Jag96 Jun 15, 2021
f34c715
fix textInput spacing on mobile
Jag96 Jun 15, 2021
409f66a
simplify privacy link
Jag96 Jun 15, 2021
466a9bc
improve error messages
Jag96 Jun 15, 2021
c787e01
fix style
Jag96 Jun 15, 2021
4fe596a
translate to spanish
Jag96 Jun 15, 2021
5be04c0
address PR review comments
Jag96 Jun 15, 2021
ae3fc4a
remove commented out line
Jag96 Jun 15, 2021
9998549
fix: propTypes
parasharrajat Jun 15, 2021
2aacbc9
Add missing spanish tranlsation
iwiznia Jun 15, 2021
a48ddb5
use promiseAllSettled
marcaaron Jun 15, 2021
635bebf
add growl for errors
marcaaron Jun 15, 2021
b408663
fix comment
marcaaron Jun 15, 2021
c1b4bd4
Merge pull request #3507 from Expensify/marcaaron-setupWithdrawlAccount
marcaaron Jun 15, 2021
43924eb
Add optional stepToOpen parameter
marcaaron Jun 15, 2021
f843ffc
better name
marcaaron Jun 15, 2021
9972d32
use bank-account/personal
marcaaron Jun 15, 2021
2b0e575
don't modify original data
Jag96 Jun 15, 2021
cdbc397
merge main
Jag96 Jun 15, 2021
2863305
Merge pull request #3463 from Expensify/joe-invite-to-workspace
marcaaron Jun 15, 2021
b183a0e
Pulled changes
parasharrajat Jun 16, 2021
ead7d7c
Merge pull request #3596 from Expensify/marcaaron-stepRouteParameter
marcaaron Jun 16, 2021
1af601e
Merge pull request #3567 from Expensify/jasper-languageSelector
jasperhuangg Jun 16, 2021
e4cfc48
Translations for the options in the language selector
jasperhuangg Jun 16, 2021
3ebf613
Merge pull request #3515 from parasharrajat/context-menu
Beamanator Jun 16, 2021
655f9ef
Merge pull request #3589 from Expensify/ionatan_fix_translation
Gonals Jun 16, 2021
3ea5b67
Add latest bank + paycheck icons from design team
Beamanator Jun 16, 2021
6dcc178
Merge pull request #3611 from Expensify/beaman-fix-vba-icon-styles
marcaaron Jun 16, 2021
766259c
Merge pull request #3606 from Expensify/jasper-languageSelectorOtherC…
madmax330 Jun 16, 2021
ac73159
Update version to 1.0.69-1
Jun 16, 2021
6103f5c
Merge pull request #3617 from Expensify/version-BUILD-766259cbf1c698a…
OSBotify Jun 16, 2021
1bce988
Merge branch 'main' into update-staging-from-main
Jun 16, 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
4 changes: 2 additions & 2 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -148,8 +148,8 @@ android {
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
multiDexEnabled rootProject.ext.multiDexEnabled
versionCode 1001006900
versionName "1.0.69-0"
versionCode 1001006901
versionName "1.0.69-1"
}
splits {
abi {
Expand Down
9 changes: 7 additions & 2 deletions assets/images/bank.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
23 changes: 19 additions & 4 deletions assets/images/paycheck.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion ios/ExpensifyCash/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
</dict>
</array>
<key>CFBundleVersion</key>
<string>1.0.69.0</string>
<string>1.0.69.1</string>
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
<key>LSApplicationQueriesSchemes</key>
Expand Down
2 changes: 1 addition & 1 deletion ios/ExpensifyCashTests/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,6 @@
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.0.69.0</string>
<string>1.0.69.1</string>
</dict>
</plist>
2 changes: 1 addition & 1 deletion package-lock.json

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

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "expensify.cash",
"version": "1.0.69-0",
"version": "1.0.69-1",
"author": "Expensify, Inc.",
"homepage": "https://expensify.cash",
"description": "Expensify.cash is the next generation of Expensify: a reimagination of payments based atop a foundation of chat.",
Expand Down
43 changes: 42 additions & 1 deletion src/CONST.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,41 @@ const CONST = {
IOS: 'https://apps.apple.com/us/app/expensify-cash/id1530278510',
DESKTOP: 'https://expensify.cash/Expensify.cash.dmg',
},
SMS: {
DOMAIN: '@expensify.sms',
},
BANK_ACCOUNT: {
ADD_METHOD: {
STEP: {
// In the order they appear in the VBA flow
BANK_ACCOUNT: 'BankAccountStep',
COMPANY: 'CompanyStep',
REQUESTOR: 'RequestorStep',
ACH_CONTRACT: 'ACHContractStep',
VALIDATION: 'ValidationStep',
ENABLE: 'EnableStep',
},
SUBSTEP: {
MANUAL: 'manual',
},
VERIFICATIONS: {
ERROR_MESSAGE: 'verifications.errorMessage',
EXTERNAL_API_RESPONSES: 'verifications.externalApiResponses',
REQUESTOR_IDENTITY_ID: 'verifications.externalApiResponses.requestorIdentityID',
REQUESTOR_IDENTITY_ONFIDO: 'verifications.externalApiResponses.requestorIdentityOnfido',
THROTTLED: 'verifications.throttled',
},
FIELDS_TYPE: {
LOCAL: 'local',
},
ONFIDO_RESPONSE: {
SDK_TOKEN: 'apiResult.sdkToken',
PASS: 'pass',
},
QUESTIONS: {
QUESTION: 'apiResult.questions.question',
DIFFERENTIATOR_QUESTION: 'apiResult.differentiator-question',
},
SETUP_TYPE: {
MANUAL: 'manual',
PLAID: 'plaid',
},
Expand All @@ -30,6 +63,12 @@ const CONST = {
PRESSED: 'pressed',
COMPLETE: 'complete',
},
COUNTRY: {
US: 'US',
MX: 'MX',
AU: 'AU',
CA: 'CA',
},
PLATFORM: {
IOS: 'ios',
ANDROID: 'android',
Expand Down Expand Up @@ -121,6 +160,8 @@ const CONST = {
PAYPAL_ME_ADDRESS: 'expensify_payPalMeAddress',
PRIORITY_MODE: 'priorityMode',
TIMEZONE: 'timeZone',
FREE_PLAN_BANK_ACCOUNT_ID: 'expensify_freePlanBankAccountID',
ACH_DATA_THROTTLED: 'expensify_ACHData_throttled',
},
DEFAULT_TIME_ZONE: {automatic: true, selected: 'America/Los_Angeles'},
DEFAULT_ACCOUNT_DATA: {error: '', success: '', loading: false},
Expand Down
3 changes: 3 additions & 0 deletions src/ONYXKEYS.js
Original file line number Diff line number Diff line change
Expand Up @@ -101,4 +101,7 @@ export default {

// Object containing Wallet terms step state
WALLET_TERMS: 'walletTerms',

// Stores information about the active reimbursement account being set up
REIMBURSEMENT_ACCOUNT: 'reimbursementAccount',
};
6 changes: 4 additions & 2 deletions src/ROUTES.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ import {addTrailingForwardSlash} from './libs/Url';
const REPORT = 'r';

export default {
ADD_PERSONAL_BANK_ACCOUNT: 'add-personal-bank-account',
BANK_ACCOUNT_NEW: 'bank-account/new',
BANK_ACCOUNT: 'bank-account/:stepToOpen?',
BANK_ACCOUNT_PERSONAL: 'bank-account/personal',
HOME: '',
SETTINGS: 'settings',
SETTINGS_PROFILE: 'settings/profile',
Expand Down Expand Up @@ -49,6 +49,8 @@ export default {
VALIDATE_LOGIN_WITH_VALIDATE_CODE: 'v/:accountID/:validateCode',
ENABLE_PAYMENTS: 'enable-payments',
WORKSPACE_NEW: 'workspace/new',
WORKSPACE_INVITE: 'workspace/:policyID/invite',
getWorkspaceInviteRoute: policyID => `workspace/${policyID}/invite`,

/**
* @param {String} route
Expand Down
23 changes: 21 additions & 2 deletions src/components/Modal/BaseModal.js
Original file line number Diff line number Diff line change
@@ -1,15 +1,28 @@
import React, {PureComponent} from 'react';
import {View} from 'react-native';
import PropTypes from 'prop-types';
import ReactNativeModal from 'react-native-modal';
import {SafeAreaInsetsContext} from 'react-native-safe-area-context';

import KeyboardShortcut from '../../libs/KeyboardShortcut';
import styles, {getModalPaddingStyles, getSafeAreaPadding} from '../../styles/styles';
import themeColors from '../../styles/themes/default';
import {propTypes, defaultProps} from './ModalPropTypes';
import {propTypes as modalPropTypes, defaultProps as modalDefaultProps} from './ModalPropTypes';
import getModalStyles from '../../styles/getModalStyles';
import {setModalVisibility} from '../../libs/actions/Modal';

const propTypes = {
...modalPropTypes,

/** The ref to the modal container */
forwardedRef: PropTypes.func,
};

const defaultProps = {
...modalDefaultProps,
forwardedRef: () => {},
};

class BaseModal extends PureComponent {
constructor(props) {
super(props);
Expand Down Expand Up @@ -94,6 +107,8 @@ class BaseModal extends PureComponent {
backdropColor={themeColors.modalBackdrop}
backdropOpacity={hideBackdrop ? 0 : 0.5}
backdropTransitionOutTiming={0}
hasBackdrop={this.props.fullscreen}
coverScreen={this.props.fullscreen}
style={modalStyle}
deviceHeight={this.props.windowHeight}
deviceWidth={this.props.windowWidth}
Expand Down Expand Up @@ -128,6 +143,7 @@ class BaseModal extends PureComponent {
...modalContainerStyle,
...modalPaddingStyles,
}}
ref={this.props.forwardedRef}
>
{this.props.children}
</View>
Expand All @@ -142,4 +158,7 @@ class BaseModal extends PureComponent {
BaseModal.propTypes = propTypes;
BaseModal.defaultProps = defaultProps;
BaseModal.displayName = 'BaseModal';
export default BaseModal;
export default React.forwardRef((props, ref) => (
// eslint-disable-next-line react/jsx-props-no-spreading
<BaseModal {...props} forwardedRef={ref} />
));
8 changes: 8 additions & 0 deletions src/components/Modal/ModalPropTypes.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,12 @@ import CONST from '../../CONST';
import {windowDimensionsPropTypes} from '../withWindowDimensions';

const propTypes = {
/** Decides whether the modal should cover fullscreen. FullScreen modal has backdrop */
fullscreen: PropTypes.bool,

/** Should we close modal on outside click */
shouldCloseOnOutsideClick: PropTypes.bool,

/** Should we announce the Modal visibility changes? */
shouldSetModalVisibility: PropTypes.bool,

Expand Down Expand Up @@ -52,6 +58,8 @@ const propTypes = {
};

const defaultProps = {
fullscreen: true,
shouldCloseOnOutsideClick: false,
shouldSetModalVisibility: true,
onSubmit: null,
type: '',
Expand Down
47 changes: 40 additions & 7 deletions src/components/Modal/index.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,47 @@
import React from 'react';
import React, {Component} from 'react';
import withWindowDimensions from '../withWindowDimensions';
import BaseModal from './BaseModal';
import {propTypes, defaultProps} from './ModalPropTypes';

const Modal = props => (
// eslint-disable-next-line react/jsx-props-no-spreading
<BaseModal {...props}>
{props.children}
</BaseModal>
);
class Modal extends Component {
constructor(props) {
super(props);
this.closeOnOutsideClick = this.closeOnOutsideClick.bind(this);
}

componentDidMount() {
if (this.props.shouldCloseOnOutsideClick) {
document.addEventListener('mousedown', this.closeOnOutsideClick);
}
}

componentWillUnmount() {
if (this.props.shouldCloseOnOutsideClick) {
document.removeEventListener('mousedown', this.closeOnOutsideClick);
}
}

closeOnOutsideClick(event) {
if (this.props.isVisible
&& this.baseModalRef
&& !this.baseModalRef.contains(event.target)
&& this.props.shouldCloseOnOutsideClick) {
this.props.onClose();
}
}

render() {
return (
<BaseModal
ref={el => this.baseModalRef = el}
// eslint-disable-next-line react/jsx-props-no-spreading
{...this.props}
>
{this.props.children}
</BaseModal>
);
}
}

Modal.propTypes = propTypes;
Modal.defaultProps = defaultProps;
Expand Down
4 changes: 2 additions & 2 deletions src/components/Popover/PopoverPropTypes.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import PropTypes from 'prop-types';
import {propTypes as modalPropTypes, defaultProps as defaultModalProps} from '../Modal/ModalPropTypes';

const propTypes = {
...(_.omit(modalPropTypes, 'type', 'popoverAnchorPosition')),
...(_.omit(modalPropTypes, ['type', 'popoverAnchorPosition'])),

/** The anchor position of the popover */
anchorPosition: PropTypes.shape({
Expand All @@ -15,7 +15,7 @@ const propTypes = {
};

const defaultProps = {
...(_.omit(defaultModalProps, 'type', 'popoverAnchorPosition')),
...(_.omit(defaultModalProps, ['type', 'popoverAnchorPosition'])),

// Anchor position is optional only because it is not relevant on mobile
anchorPosition: {},
Expand Down
37 changes: 27 additions & 10 deletions src/components/Popover/index.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import React from 'react';
import {createPortal} from 'react-dom';
import {propTypes, defaultProps} from './PopoverPropTypes';
import CONST from '../../CONST';
import Modal from '../Modal';
Expand All @@ -8,16 +9,32 @@ import withWindowDimensions from '../withWindowDimensions';
* This is a convenience wrapper around the Modal component for a responsive Popover.
* On small screen widths, it uses BottomDocked modal type, and a Popover type on wide screen widths.
*/
const Popover = props => (
<Modal
type={props.isSmallScreenWidth ? CONST.MODAL.MODAL_TYPE.BOTTOM_DOCKED : CONST.MODAL.MODAL_TYPE.POPOVER}
popoverAnchorPosition={props.isSmallScreenWidth ? undefined : props.anchorPosition}
// eslint-disable-next-line react/jsx-props-no-spreading
{...props}
animationIn={props.isSmallScreenWidth ? undefined : props.animationIn}
animationOut={props.isSmallScreenWidth ? undefined : props.animationOut}
/>
);
const Popover = (props) => {
if (!props.fullscreen && !props.isSmallScreenWidth) {
return createPortal(
<Modal
type={CONST.MODAL.MODAL_TYPE.POPOVER}
popoverAnchorPosition={props.anchorPosition}
// eslint-disable-next-line react/jsx-props-no-spreading
{...props}
animationIn={props.isSmallScreenWidth ? undefined : props.animationIn}
animationOut={props.isSmallScreenWidth ? undefined : props.animationOut}
shouldCloseOnOutsideClick
/>,
document.body,
);
}
return (
<Modal
type={props.isSmallScreenWidth ? CONST.MODAL.MODAL_TYPE.BOTTOM_DOCKED : CONST.MODAL.MODAL_TYPE.POPOVER}
popoverAnchorPosition={props.isSmallScreenWidth ? undefined : props.anchorPosition}
// eslint-disable-next-line react/jsx-props-no-spreading
{...props}
animationIn={props.isSmallScreenWidth ? undefined : props.animationIn}
animationOut={props.isSmallScreenWidth ? undefined : props.animationOut}
/>
);
};

Popover.propTypes = propTypes;
Popover.defaultProps = defaultProps;
Expand Down
Loading