From 13f06391b09287e28dfd6c55ad04aef0a846a75b Mon Sep 17 00:00:00 2001 From: Aman Ansar Date: Mon, 9 Aug 2021 23:13:33 +0530 Subject: [PATCH] stop adding duplicate members --- src/languages/en.js | 1 + src/languages/es.js | 1 + src/pages/workspace/WorkspaceInvitePage.js | 7 +++++++ 3 files changed, 9 insertions(+) diff --git a/src/languages/en.js b/src/languages/en.js index a2d9379d2a9..c39a2998c68 100755 --- a/src/languages/en.js +++ b/src/languages/en.js @@ -586,6 +586,7 @@ export default { personalMessagePrompt: 'Add a Personal Message (Optional)', enterEmailOrPhone: 'Email or Phone', pleaseEnterValidLogin: 'Please ensure the email or phone number is valid (e.g. +15005550006).', + pleaseEnterUniqueLogin: 'That user is already a member of this workspace.', genericFailureMessage: 'An error occurred inviting the user to the workspace, please try again.', welcomeNote: ({workspaceName}) => `You have been invited to the ${workspaceName} Workspace! Download the Expensify mobile App to start tracking your expenses.`, }, diff --git a/src/languages/es.js b/src/languages/es.js index c93e0a4103e..ac5426aed76 100644 --- a/src/languages/es.js +++ b/src/languages/es.js @@ -588,6 +588,7 @@ export default { personalMessagePrompt: 'Agregar un mensaje personal (Opcional)', enterEmailOrPhone: 'Email o teléfono', pleaseEnterValidLogin: 'Asegúrese de que el correo electrónico o el número de teléfono sean válidos (e.g. +15005550006).', + pleaseEnterUniqueLogin: 'Ese usuario ya es miembro de este espacio de trabajo.', genericFailureMessage: 'Se produjo un error al invitar al usuario al espacio de trabajo. Vuelva a intentarlo..', welcomeNote: ({workspaceName}) => `¡Has sido invitado a la ${workspaceName} Espacio de trabajo! Descargue la aplicación móvil Expensify para comenzar a rastrear sus gastos.`, }, diff --git a/src/pages/workspace/WorkspaceInvitePage.js b/src/pages/workspace/WorkspaceInvitePage.js index cd107c43c84..f0be2cbfa7c 100644 --- a/src/pages/workspace/WorkspaceInvitePage.js +++ b/src/pages/workspace/WorkspaceInvitePage.js @@ -4,6 +4,7 @@ import {TextInput, View, ScrollView} from 'react-native'; import {withOnyx} from 'react-native-onyx'; import Str from 'expensify-common/lib/str'; import _ from 'underscore'; +import lodashGet from 'lodash/get'; import withLocalize, {withLocalizePropTypes} from '../../components/withLocalize'; import ScreenWrapper from '../../components/ScreenWrapper'; import HeaderWithCloseButton from '../../components/HeaderWithCloseButton'; @@ -78,6 +79,12 @@ class WorkspaceInvitePage extends React.Component { Growl.error(this.props.translate('workspace.invite.pleaseEnterValidLogin'), 5000); return; } + const policyEmployeeList = lodashGet(this.props, 'policy.employeeList', []); + const AreLoginsDuplicate = _.every(logins, login => _.contains(policyEmployeeList, login)); + if (AreLoginsDuplicate) { + Growl.error(this.props.translate('workspace.invite.pleaseEnterUniqueLogin'), 5000); + return; + } invite(logins, this.state.welcomeNote || this.getWelcomeNotePlaceholder(), this.props.route.params.policyID);