From 6e72ad1817987edb459ada0b5fde335c46b2f83e Mon Sep 17 00:00:00 2001 From: Joe Gambino Date: Tue, 8 Jun 2021 20:19:30 -0700 Subject: [PATCH 01/35] update routes --- src/ROUTES.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/ROUTES.js b/src/ROUTES.js index 0a84cb15ed98..9292a00136d3 100644 --- a/src/ROUTES.js +++ b/src/ROUTES.js @@ -47,6 +47,8 @@ export default { VALIDATE_LOGIN: 'v', VALIDATE_LOGIN_WITH_VALIDATE_CODE: 'v/:accountID/:validateCode', ENABLE_PAYMENTS: 'enable-payments', + WORKSPACE_INVITE: 'workspace/:policyID/invite', + getWorkspaceInviteRoute: policyID => `workspace/${policyID}/invite`, /** * @param {String} route From 2a60ac7c6518cab11fa3de2b4a52d731199d82fe Mon Sep 17 00:00:00 2001 From: Joe Gambino Date: Tue, 8 Jun 2021 20:22:19 -0700 Subject: [PATCH 02/35] update linkingConfig --- src/libs/Navigation/linkingConfig.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/libs/Navigation/linkingConfig.js b/src/libs/Navigation/linkingConfig.js index 7053c8d4f021..a1e5f2e91981 100644 --- a/src/libs/Navigation/linkingConfig.js +++ b/src/libs/Navigation/linkingConfig.js @@ -114,6 +114,11 @@ export default { EnablePayments_Root: ROUTES.ENABLE_PAYMENTS, }, }, + WorkspaceInvite: { + screens: { + WorkspaceInvite_Root: ROUTES.WORKSPACE_INVITE, + }, + }, }, }, }; From e01059d5247b3397093d313cda601b35e602f733 Mon Sep 17 00:00:00 2001 From: Joe Gambino Date: Tue, 8 Jun 2021 20:55:23 -0700 Subject: [PATCH 03/35] add workspaceInvite page --- src/languages/en.js | 7 +++ src/pages/WorkspaceInvitePage.js | 85 ++++++++++++++++++++++++++++++++ 2 files changed, 92 insertions(+) create mode 100644 src/pages/WorkspaceInvitePage.js diff --git a/src/languages/en.js b/src/languages/en.js index cfe1a9790ade..b8ca2654ee5b 100755 --- a/src/languages/en.js +++ b/src/languages/en.js @@ -32,6 +32,7 @@ export default { recents: 'Recents', close: 'Close', settings: 'Settings', + invite: 'Invite', }, attachmentPicker: { cameraPermissionRequired: 'Camera Permission Required', @@ -318,4 +319,10 @@ export default { session: { offlineMessage: 'Looks like you\'re not connected to internet. Can you check your connection and try again?', }, + workspaceInvitePage: { + invitePeople: 'Invite People', + invitePeoplePrompt: 'Invite a colleague to your workspace.', + enterEmailOrPhone: 'Email or Phone', + welcomeMessage: ({workspaceName}) => `You have been invited to the ${workspaceName} Workspace! Download the Expensify mobile App to start tracking your expenses.`, + }, }; diff --git a/src/pages/WorkspaceInvitePage.js b/src/pages/WorkspaceInvitePage.js new file mode 100644 index 000000000000..4ee7b42a0a8f --- /dev/null +++ b/src/pages/WorkspaceInvitePage.js @@ -0,0 +1,85 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import {TextInput, View} from 'react-native'; +import {withLocalizePropTypes} from '../components/withLocalize'; +import ScreenWrapper from '../components/ScreenWrapper'; +import HeaderWithCloseButton from '../components/HeaderWithCloseButton'; +import Navigation from '../libs/Navigation/Navigation'; +import styles from '../styles/styles'; +import Text from '../components/Text'; +import Button from '../components/Button'; + +const propTypes = { + ...withLocalizePropTypes, + + /** PolicyID of the workspace */ + policyID: PropTypes.string.isRequired, +}; + +class WorkspaceInvitePage extends React.Component { + constructor(props) { + super(props); + + this.state = { + emailOrPhone: '', + welcomeMessage: '', + }; + } + + inviteUser() { + console.debug('user invited'); + } + + render() { + return ( + + Navigation.dismissModal()} + /> + + + + {this.props.translate('workspaceInvitePage.invitePeople')} + + this.setState({phoneOrEmail: text})} + /> + + this.setState({welcomeMessage: text})} + /> + + + +