From 35ff994939169f98dd3851148b24ee1df2c6571b Mon Sep 17 00:00:00 2001 From: dukenv0307 Date: Sat, 28 Oct 2023 16:09:18 +0700 Subject: [PATCH 1/8] fix error message for duplicate waypoint --- src/components/DistanceRequest/index.js | 5 +++-- src/libs/TransactionUtils.ts | 6 ++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/components/DistanceRequest/index.js b/src/components/DistanceRequest/index.js index bd35678273ec..96d2f2d6e2fd 100644 --- a/src/components/DistanceRequest/index.js +++ b/src/components/DistanceRequest/index.js @@ -89,6 +89,7 @@ function DistanceRequest({transactionID, report, transaction, route, isEditingRe const haveValidatedWaypointsChanged = !_.isEqual(previousValidatedWaypoints, validatedWaypoints); const isRouteAbsentWithoutErrors = !hasRoute && !hasRouteError; const shouldFetchRoute = (isRouteAbsentWithoutErrors || haveValidatedWaypointsChanged) && !isLoadingRoute && _.size(validatedWaypoints) > 1; + const numberOfNoneEmptyWaypoints = _.filter(_.values(waypoints), (value) => !_.isEmpty(value) && TransactionUtils.waypointHasValidAddress(value)).length; useEffect(() => { MapboxToken.init(); @@ -150,8 +151,8 @@ function DistanceRequest({transactionID, report, transaction, route, isEditingRe return ErrorUtils.getLatestErrorField(transaction, 'route'); } - // Initially, both waypoints will be null, and if we give fallback value as empty string that will result in true condition, that's why different default values. - if (_.keys(waypoints).length === 2 && lodashGet(waypoints, 'waypoint0.address', 'address1') === lodashGet(waypoints, 'waypoint1.address', 'address2')) { + const isDuplicatedWaypoints = numberOfNoneEmptyWaypoints > _.size(validatedWaypoints) && _.size(validatedWaypoints) === 1; + if (isDuplicatedWaypoints) { return {0: translate('iou.error.duplicateWaypointsErrorMessage')}; } diff --git a/src/libs/TransactionUtils.ts b/src/libs/TransactionUtils.ts index abd646fc19f1..987081b9e829 100644 --- a/src/libs/TransactionUtils.ts +++ b/src/libs/TransactionUtils.ts @@ -421,6 +421,7 @@ function getValidWaypoints(waypoints: WaypointCollection, reArrangeIndexes = fal } let lastWaypointIndex = -1; + let waypointIndex = -1; return waypointValues.reduce((acc, currentWaypoint, index) => { const previousWaypoint = waypointValues[lastWaypointIndex]; @@ -435,9 +436,10 @@ function getValidWaypoints(waypoints: WaypointCollection, reArrangeIndexes = fal return acc; } - const validatedWaypoints: WaypointCollection = {...acc, [`waypoint${reArrangeIndexes ? lastWaypointIndex + 1 : index}`]: currentWaypoint}; + const validatedWaypoints: WaypointCollection = {...acc, [`waypoint${reArrangeIndexes ? waypointIndex + 1 : index}`]: currentWaypoint}; - lastWaypointIndex += 1; + lastWaypointIndex = index; + waypointIndex += 1; return validatedWaypoints; }, {}); From 2d765cbfd76f6d735906f318f02b5f1530b7fe6a Mon Sep 17 00:00:00 2001 From: dukenv0307 Date: Tue, 31 Oct 2023 18:21:19 +0700 Subject: [PATCH 2/8] update error message --- src/components/DistanceRequest/index.js | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/components/DistanceRequest/index.js b/src/components/DistanceRequest/index.js index f7c220f32888..097b1700c372 100644 --- a/src/components/DistanceRequest/index.js +++ b/src/components/DistanceRequest/index.js @@ -152,11 +152,7 @@ function DistanceRequest({transactionID, report, transaction, route, isEditingRe } const isDuplicatedWaypoints = numberOfNoneEmptyWaypoints > _.size(validatedWaypoints) && _.size(validatedWaypoints) === 1; - if (isDuplicatedWaypoints) { - return {0: translate('iou.error.duplicateWaypointsErrorMessage')}; - } - - if (_.size(validatedWaypoints) < 2) { + if (_.size(validatedWaypoints) < 2 || isDuplicatedWaypoints) { return {0: translate('iou.error.emptyWaypointsErrorMessage')}; } }; From cb0364ca04577e1f81fceca7f5ef7b41b02e59ee Mon Sep 17 00:00:00 2001 From: dukenv0307 Date: Wed, 1 Nov 2023 12:07:51 +0700 Subject: [PATCH 3/8] update condition --- src/components/DistanceRequest/index.js | 6 ++---- src/languages/en.ts | 2 +- src/languages/es.ts | 2 +- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/components/DistanceRequest/index.js b/src/components/DistanceRequest/index.js index 097b1700c372..eb6811d02323 100644 --- a/src/components/DistanceRequest/index.js +++ b/src/components/DistanceRequest/index.js @@ -89,7 +89,6 @@ function DistanceRequest({transactionID, report, transaction, route, isEditingRe const haveValidatedWaypointsChanged = !_.isEqual(previousValidatedWaypoints, validatedWaypoints); const isRouteAbsentWithoutErrors = !hasRoute && !hasRouteError; const shouldFetchRoute = (isRouteAbsentWithoutErrors || haveValidatedWaypointsChanged) && !isLoadingRoute && _.size(validatedWaypoints) > 1; - const numberOfNoneEmptyWaypoints = _.filter(_.values(waypoints), (value) => !_.isEmpty(value) && TransactionUtils.waypointHasValidAddress(value)).length; useEffect(() => { MapboxToken.init(); @@ -151,9 +150,8 @@ function DistanceRequest({transactionID, report, transaction, route, isEditingRe return ErrorUtils.getLatestErrorField(transaction, 'route'); } - const isDuplicatedWaypoints = numberOfNoneEmptyWaypoints > _.size(validatedWaypoints) && _.size(validatedWaypoints) === 1; - if (_.size(validatedWaypoints) < 2 || isDuplicatedWaypoints) { - return {0: translate('iou.error.emptyWaypointsErrorMessage')}; + if (_.size(validatedWaypoints) < 2) { + return {0: translate('iou.error.atLeastTwoDifferentWaypoints')}; } }; diff --git a/src/languages/en.ts b/src/languages/en.ts index cf4f7e66101f..821f63262162 100755 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -593,7 +593,7 @@ export default { genericEditFailureMessage: 'Unexpected error editing the money request, please try again later', genericSmartscanFailureMessage: 'Transaction is missing fields', duplicateWaypointsErrorMessage: 'Please remove duplicate waypoints', - emptyWaypointsErrorMessage: 'Please enter at least two waypoints', + atLeastTwoDifferentWaypoints: 'Please enter at least two waypoints', }, waitingOnEnabledWallet: ({submitterDisplayName}: WaitingOnBankAccountParams) => `Started settling up, payment is held until ${submitterDisplayName} enables their Wallet`, enableWallet: 'Enable Wallet', diff --git a/src/languages/es.ts b/src/languages/es.ts index f1e24a7a6777..f940bfbe7d2f 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -587,7 +587,7 @@ export default { genericEditFailureMessage: 'Error inesperado al guardar la solicitud de dinero. Por favor, inténtalo más tarde', genericSmartscanFailureMessage: 'La transacción tiene campos vacíos', duplicateWaypointsErrorMessage: 'Por favor elimina los puntos de ruta duplicados', - emptyWaypointsErrorMessage: 'Por favor introduce al menos dos puntos de ruta', + atLeastTwoDifferentWaypoints: 'Por favor introduce al menos dos puntos de ruta', }, waitingOnEnabledWallet: ({submitterDisplayName}: WaitingOnBankAccountParams) => `Inició el pago, pero no se procesará hasta que ${submitterDisplayName} active su Billetera`, enableWallet: 'Habilitar Billetera', From 0fecc01918ba3d821c39d21bd24ea359042e5f33 Mon Sep 17 00:00:00 2001 From: dukenv0307 <129500732+dukenv0307@users.noreply.github.com> Date: Wed, 1 Nov 2023 16:46:39 +0700 Subject: [PATCH 4/8] Update src/languages/en.ts Co-authored-by: wentao --- src/languages/en.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/languages/en.ts b/src/languages/en.ts index 821f63262162..878ef60033b0 100755 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -592,7 +592,6 @@ export default { genericDeleteFailureMessage: 'Unexpected error deleting the money request, please try again later', genericEditFailureMessage: 'Unexpected error editing the money request, please try again later', genericSmartscanFailureMessage: 'Transaction is missing fields', - duplicateWaypointsErrorMessage: 'Please remove duplicate waypoints', atLeastTwoDifferentWaypoints: 'Please enter at least two waypoints', }, waitingOnEnabledWallet: ({submitterDisplayName}: WaitingOnBankAccountParams) => `Started settling up, payment is held until ${submitterDisplayName} enables their Wallet`, From 162b8c088fdfd570e3c420bf904cb4ac984378b5 Mon Sep 17 00:00:00 2001 From: dukenv0307 <129500732+dukenv0307@users.noreply.github.com> Date: Wed, 1 Nov 2023 16:46:51 +0700 Subject: [PATCH 5/8] Update src/languages/en.ts Co-authored-by: wentao --- src/languages/en.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/languages/en.ts b/src/languages/en.ts index 878ef60033b0..6b8d6c02c0a0 100755 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -592,7 +592,7 @@ export default { genericDeleteFailureMessage: 'Unexpected error deleting the money request, please try again later', genericEditFailureMessage: 'Unexpected error editing the money request, please try again later', genericSmartscanFailureMessage: 'Transaction is missing fields', - atLeastTwoDifferentWaypoints: 'Please enter at least two waypoints', + atLeastTwoDifferentWaypoints: 'Please enter at least two different waypoints', }, waitingOnEnabledWallet: ({submitterDisplayName}: WaitingOnBankAccountParams) => `Started settling up, payment is held until ${submitterDisplayName} enables their Wallet`, enableWallet: 'Enable Wallet', From 6fc3fdd123308be06e6ecbb96759d4023964b1f7 Mon Sep 17 00:00:00 2001 From: dukenv0307 <129500732+dukenv0307@users.noreply.github.com> Date: Wed, 1 Nov 2023 16:46:59 +0700 Subject: [PATCH 6/8] Update src/languages/es.ts Co-authored-by: wentao --- src/languages/es.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/languages/es.ts b/src/languages/es.ts index f940bfbe7d2f..8243de5b416e 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -587,7 +587,7 @@ export default { genericEditFailureMessage: 'Error inesperado al guardar la solicitud de dinero. Por favor, inténtalo más tarde', genericSmartscanFailureMessage: 'La transacción tiene campos vacíos', duplicateWaypointsErrorMessage: 'Por favor elimina los puntos de ruta duplicados', - atLeastTwoDifferentWaypoints: 'Por favor introduce al menos dos puntos de ruta', + atLeastTwoDifferentWaypoints: 'Por favor introduce al menos dos puntos de ruta diferentes', }, waitingOnEnabledWallet: ({submitterDisplayName}: WaitingOnBankAccountParams) => `Inició el pago, pero no se procesará hasta que ${submitterDisplayName} active su Billetera`, enableWallet: 'Habilitar Billetera', From 69459bf9f6020abcbfc9751663460a8ce0b2be74 Mon Sep 17 00:00:00 2001 From: dukenv0307 Date: Wed, 1 Nov 2023 16:48:29 +0700 Subject: [PATCH 7/8] remove un-use translation --- src/languages/es.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/languages/es.ts b/src/languages/es.ts index 8243de5b416e..d106efa4f209 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -586,7 +586,6 @@ export default { genericDeleteFailureMessage: 'Error inesperado eliminando la solicitud de dinero. Por favor, inténtalo más tarde', genericEditFailureMessage: 'Error inesperado al guardar la solicitud de dinero. Por favor, inténtalo más tarde', genericSmartscanFailureMessage: 'La transacción tiene campos vacíos', - duplicateWaypointsErrorMessage: 'Por favor elimina los puntos de ruta duplicados', atLeastTwoDifferentWaypoints: 'Por favor introduce al menos dos puntos de ruta diferentes', }, waitingOnEnabledWallet: ({submitterDisplayName}: WaitingOnBankAccountParams) => `Inició el pago, pero no se procesará hasta que ${submitterDisplayName} active su Billetera`, From 4e9bfe930ad831077afc86739efa6c4d7939e7f1 Mon Sep 17 00:00:00 2001 From: dukenv0307 Date: Mon, 6 Nov 2023 13:22:00 +0700 Subject: [PATCH 8/8] update translation --- src/languages/en.ts | 2 +- src/languages/es.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/languages/en.ts b/src/languages/en.ts index 9a0ccb005ffa..01a0488d7ff1 100755 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -592,7 +592,7 @@ export default { genericDeleteFailureMessage: 'Unexpected error deleting the money request, please try again later', genericEditFailureMessage: 'Unexpected error editing the money request, please try again later', genericSmartscanFailureMessage: 'Transaction is missing fields', - atLeastTwoDifferentWaypoints: 'Please enter at least two different waypoints', + atLeastTwoDifferentWaypoints: 'Please enter at least two different addresses', splitBillMultipleParticipantsErrorMessage: 'Split bill is only allowed between a single workspace or individual users. Please update your selection.', }, waitingOnEnabledWallet: ({submitterDisplayName}: WaitingOnBankAccountParams) => `Started settling up, payment is held until ${submitterDisplayName} enables their Wallet`, diff --git a/src/languages/es.ts b/src/languages/es.ts index 7fbe3d9110fd..592ccf5f2c30 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -586,7 +586,7 @@ export default { genericDeleteFailureMessage: 'Error inesperado eliminando la solicitud de dinero. Por favor, inténtalo más tarde', genericEditFailureMessage: 'Error inesperado al guardar la solicitud de dinero. Por favor, inténtalo más tarde', genericSmartscanFailureMessage: 'La transacción tiene campos vacíos', - atLeastTwoDifferentWaypoints: 'Por favor introduce al menos dos puntos de ruta diferentes', + atLeastTwoDifferentWaypoints: 'Por favor introduce al menos dos direcciones diferentes', splitBillMultipleParticipantsErrorMessage: 'Solo puedes dividir una cuenta entre un único espacio de trabajo o con usuarios individuales. Por favor actualiza tu selección.', }, waitingOnEnabledWallet: ({submitterDisplayName}: WaitingOnBankAccountParams) => `Inició el pago, pero no se procesará hasta que ${submitterDisplayName} active su Billetera`,