From 3c62ad7a85ad37e8f24cf4fdbf3f9d8d3e439cb3 Mon Sep 17 00:00:00 2001 From: dukenv0307 Date: Wed, 28 Feb 2024 09:14:37 +0700 Subject: [PATCH 01/10] fix tag list show required --- ...eyTemporaryForRefactorRequestConfirmationList.js | 13 ++++++++----- src/libs/Permissions.ts | 1 + 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/components/MoneyTemporaryForRefactorRequestConfirmationList.js b/src/components/MoneyTemporaryForRefactorRequestConfirmationList.js index 8eeaeaf87eff..3ad273492d99 100755 --- a/src/components/MoneyTemporaryForRefactorRequestConfirmationList.js +++ b/src/components/MoneyTemporaryForRefactorRequestConfirmationList.js @@ -267,6 +267,9 @@ function MoneyTemporaryForRefactorRequestConfirmationList({ const policyTagLists = useMemo(() => PolicyUtils.getTagLists(policyTags), [policyTags]); + // Check if it is the multiple levels tags or not + const isMultipleLevelsTags = policyTagLists && policyTagLists.length > 1; + // A flag for showing the tags field const shouldShowTags = useMemo(() => isPolicyExpenseChat && OptionsListUtils.hasEnabledTags(policyTagLists), [isPolicyExpenseChat, policyTagLists]); @@ -762,7 +765,7 @@ function MoneyTemporaryForRefactorRequestConfirmationList({ shouldShow: shouldShowCategories, isSupplementary: !isCategoryRequired, }, - ..._.map(policyTagLists, ({name}, index) => ({ + ..._.map(policyTagLists, ({name, required}, index) => ({ item: ( ), shouldShow: shouldShowTags, @@ -924,17 +927,17 @@ export default compose( key: ONYXKEYS.SESSION, }, policyCategories: { - key: ({policyID}) => `${ONYXKEYS.COLLECTION.POLICY_CATEGORIES}${policyID}`, + key: ({policyID}) => `${ONYXKEYS.COLLECTION.POLICY_CATEGORIES}${'BD2590A6E1619441'}`, }, policyTags: { - key: ({policyID}) => `${ONYXKEYS.COLLECTION.POLICY_TAGS}${policyID}`, + key: ({policyID}) => `${ONYXKEYS.COLLECTION.POLICY_TAGS}${'BD2590A6E1619441'}`, }, mileageRate: { key: ({policyID}) => `${ONYXKEYS.COLLECTION.POLICY}${policyID}`, selector: DistanceRequestUtils.getDefaultMileageRate, }, policy: { - key: ({policyID}) => `${ONYXKEYS.COLLECTION.POLICY}${policyID}`, + key: ({policyID}) => `${ONYXKEYS.COLLECTION.POLICY}${'BD2590A6E1619441'}`, }, }), )(MoneyTemporaryForRefactorRequestConfirmationList); diff --git a/src/libs/Permissions.ts b/src/libs/Permissions.ts index ce5e0e674c59..104b4218da9d 100644 --- a/src/libs/Permissions.ts +++ b/src/libs/Permissions.ts @@ -23,6 +23,7 @@ function canUseReportFields(betas: OnyxEntry): boolean { } function canUseViolations(betas: OnyxEntry): boolean { + return true return !!betas?.includes(CONST.BETAS.VIOLATIONS) || canUseAllBetas(betas); } From bce63913f98271051b213f0b277d06ec1e02ce6a Mon Sep 17 00:00:00 2001 From: dukenv0307 Date: Wed, 28 Feb 2024 09:28:44 +0700 Subject: [PATCH 02/10] fix remove redundant code --- .../MoneyTemporaryForRefactorRequestConfirmationList.js | 6 +++--- src/libs/Permissions.ts | 1 - src/libs/isReportMessageAttachment.ts | 2 +- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/components/MoneyTemporaryForRefactorRequestConfirmationList.js b/src/components/MoneyTemporaryForRefactorRequestConfirmationList.js index 3ad273492d99..1153293126a6 100755 --- a/src/components/MoneyTemporaryForRefactorRequestConfirmationList.js +++ b/src/components/MoneyTemporaryForRefactorRequestConfirmationList.js @@ -927,17 +927,17 @@ export default compose( key: ONYXKEYS.SESSION, }, policyCategories: { - key: ({policyID}) => `${ONYXKEYS.COLLECTION.POLICY_CATEGORIES}${'BD2590A6E1619441'}`, + key: ({policyID}) => `${ONYXKEYS.COLLECTION.POLICY_CATEGORIES}${policyID}`, }, policyTags: { - key: ({policyID}) => `${ONYXKEYS.COLLECTION.POLICY_TAGS}${'BD2590A6E1619441'}`, + key: ({policyID}) => `${ONYXKEYS.COLLECTION.POLICY_TAGS}${policyID}`, }, mileageRate: { key: ({policyID}) => `${ONYXKEYS.COLLECTION.POLICY}${policyID}`, selector: DistanceRequestUtils.getDefaultMileageRate, }, policy: { - key: ({policyID}) => `${ONYXKEYS.COLLECTION.POLICY}${'BD2590A6E1619441'}`, + key: ({policyID}) => `${ONYXKEYS.COLLECTION.POLICY}${policyID}`, }, }), )(MoneyTemporaryForRefactorRequestConfirmationList); diff --git a/src/libs/Permissions.ts b/src/libs/Permissions.ts index 104b4218da9d..ce5e0e674c59 100644 --- a/src/libs/Permissions.ts +++ b/src/libs/Permissions.ts @@ -23,7 +23,6 @@ function canUseReportFields(betas: OnyxEntry): boolean { } function canUseViolations(betas: OnyxEntry): boolean { - return true return !!betas?.includes(CONST.BETAS.VIOLATIONS) || canUseAllBetas(betas); } diff --git a/src/libs/isReportMessageAttachment.ts b/src/libs/isReportMessageAttachment.ts index fd03adcffd93..d25d841c1395 100644 --- a/src/libs/isReportMessageAttachment.ts +++ b/src/libs/isReportMessageAttachment.ts @@ -18,5 +18,5 @@ export default function isReportMessageAttachment({text, html, translationKey}: } const regex = new RegExp(` ${CONST.ATTACHMENT_SOURCE_ATTRIBUTE}="(.*)"`, 'i'); - return (text === CONST.ATTACHMENT_MESSAGE_TEXT || !!Str.isVideo(text)) && (!!html.match(regex) || html === CONST.ATTACHMENT_UPLOADING_MESSAGE_HTML); + return (text === CONST.ATTACHMENT_MESSAGE_TEXT) && (!!html.match(regex) || html === CONST.ATTACHMENT_UPLOADING_MESSAGE_HTML); } From cd91a49350555e25aebd1680b8cfed06d8558243 Mon Sep 17 00:00:00 2001 From: dukenv0307 Date: Wed, 28 Feb 2024 09:33:27 +0700 Subject: [PATCH 03/10] fix remove redundant logic --- src/libs/isReportMessageAttachment.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libs/isReportMessageAttachment.ts b/src/libs/isReportMessageAttachment.ts index d25d841c1395..fd03adcffd93 100644 --- a/src/libs/isReportMessageAttachment.ts +++ b/src/libs/isReportMessageAttachment.ts @@ -18,5 +18,5 @@ export default function isReportMessageAttachment({text, html, translationKey}: } const regex = new RegExp(` ${CONST.ATTACHMENT_SOURCE_ATTRIBUTE}="(.*)"`, 'i'); - return (text === CONST.ATTACHMENT_MESSAGE_TEXT) && (!!html.match(regex) || html === CONST.ATTACHMENT_UPLOADING_MESSAGE_HTML); + return (text === CONST.ATTACHMENT_MESSAGE_TEXT || !!Str.isVideo(text)) && (!!html.match(regex) || html === CONST.ATTACHMENT_UPLOADING_MESSAGE_HTML); } From 8cd38b80d7eed82d56b0a537eb5ec4c4d0f4e991 Mon Sep 17 00:00:00 2001 From: dukenv0307 Date: Mon, 4 Mar 2024 01:18:41 +0700 Subject: [PATCH 04/10] fix single tag case --- .../MoneyTemporaryForRefactorRequestConfirmationList.js | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/components/MoneyTemporaryForRefactorRequestConfirmationList.js b/src/components/MoneyTemporaryForRefactorRequestConfirmationList.js index 202e2c04dc12..e4b4d8c20bb8 100755 --- a/src/components/MoneyTemporaryForRefactorRequestConfirmationList.js +++ b/src/components/MoneyTemporaryForRefactorRequestConfirmationList.js @@ -267,9 +267,6 @@ function MoneyTemporaryForRefactorRequestConfirmationList({ const policyTagLists = useMemo(() => PolicyUtils.getTagLists(policyTags), [policyTags]); - // Check if it is the multiple levels tags or not - const isMultipleLevelsTags = policyTagLists && policyTagLists.length > 1; - // A flag for showing the tags field const shouldShowTags = useMemo(() => isPolicyExpenseChat && OptionsListUtils.hasEnabledTags(policyTagLists), [isPolicyExpenseChat, policyTagLists]); @@ -782,11 +779,11 @@ function MoneyTemporaryForRefactorRequestConfirmationList({ style={[styles.moneyRequestMenuItem]} disabled={didConfirm} interactive={!isReadOnly} - rightLabel={(isMultipleLevelsTags ? required : isTagRequired) ? translate('common.required') : ''} + rightLabel={required ? translate('common.required') : ''} /> ), shouldShow: shouldShowTags, - isSupplementary: !isTagRequired, + isSupplementary: !required, })), { item: ( From cde60148a778f3402781388608db78a802e56a97 Mon Sep 17 00:00:00 2001 From: dukenv0307 Date: Mon, 4 Mar 2024 01:34:12 +0700 Subject: [PATCH 05/10] fix lint --- .../MoneyTemporaryForRefactorRequestConfirmationList.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/components/MoneyTemporaryForRefactorRequestConfirmationList.js b/src/components/MoneyTemporaryForRefactorRequestConfirmationList.js index e4b4d8c20bb8..30eaf69ed2a7 100755 --- a/src/components/MoneyTemporaryForRefactorRequestConfirmationList.js +++ b/src/components/MoneyTemporaryForRefactorRequestConfirmationList.js @@ -310,7 +310,6 @@ function MoneyTemporaryForRefactorRequestConfirmationList({ const isMerchantRequired = isPolicyExpenseChat && !isScanRequest && shouldShowMerchant; const isCategoryRequired = canUseViolations && lodashGet(policy, 'requiresCategory', false); - const isTagRequired = canUseViolations && lodashGet(policy, 'requiresTag', false); useEffect(() => { if ((!isMerchantRequired && isMerchantEmpty) || !merchantError) { From 247827bafdb8ce9fe5478e5858c6c222c242ea81 Mon Sep 17 00:00:00 2001 From: dukenv0307 Date: Mon, 4 Mar 2024 01:59:38 +0700 Subject: [PATCH 06/10] fix create isTagRequired variable --- ...oraryForRefactorRequestConfirmationList.js | 56 +++++++++++-------- 1 file changed, 34 insertions(+), 22 deletions(-) diff --git a/src/components/MoneyTemporaryForRefactorRequestConfirmationList.js b/src/components/MoneyTemporaryForRefactorRequestConfirmationList.js index 30eaf69ed2a7..bde6850425cb 100755 --- a/src/components/MoneyTemporaryForRefactorRequestConfirmationList.js +++ b/src/components/MoneyTemporaryForRefactorRequestConfirmationList.js @@ -1,5 +1,7 @@ import {useIsFocused} from '@react-navigation/native'; import {format} from 'date-fns'; +import {isTag} from 'domhandler'; +import {isUndefined} from 'lodash'; import lodashGet from 'lodash/get'; import PropTypes from 'prop-types'; import React, {Fragment, useCallback, useEffect, useMemo, useReducer, useRef, useState} from 'react'; @@ -762,28 +764,38 @@ function MoneyTemporaryForRefactorRequestConfirmationList({ shouldShow: shouldShowCategories, isSupplementary: !isCategoryRequired, }, - ..._.map(policyTagLists, ({name, required}, index) => ({ - item: ( - - Navigation.navigate( - ROUTES.MONEY_REQUEST_STEP_TAG.getRoute(CONST.IOU.ACTION.CREATE, iouType, index, transaction.transactionID, reportID, Navigation.getActiveRouteWithoutParams()), - ) - } - style={[styles.moneyRequestMenuItem]} - disabled={didConfirm} - interactive={!isReadOnly} - rightLabel={required ? translate('common.required') : ''} - /> - ), - shouldShow: shouldShowTags, - isSupplementary: !required, - })), + ..._.map(policyTagLists, ({name, required}, index) => { + const isTagRequired = !isUndefined(required) && required; + return { + item: ( + + Navigation.navigate( + ROUTES.MONEY_REQUEST_STEP_TAG.getRoute( + CONST.IOU.ACTION.CREATE, + iouType, + index, + transaction.transactionID, + reportID, + Navigation.getActiveRouteWithoutParams(), + ), + ) + } + style={[styles.moneyRequestMenuItem]} + disabled={didConfirm} + interactive={!isReadOnly} + rightLabel={isTagRequired ? translate('common.required') : ''} + /> + ), + shouldShow: shouldShowTags, + isSupplementary: !isTagRequired, + }; + }), { item: ( Date: Mon, 4 Mar 2024 02:04:58 +0700 Subject: [PATCH 07/10] fix remove isTag --- .../MoneyTemporaryForRefactorRequestConfirmationList.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/components/MoneyTemporaryForRefactorRequestConfirmationList.js b/src/components/MoneyTemporaryForRefactorRequestConfirmationList.js index bde6850425cb..96f7a3187d24 100755 --- a/src/components/MoneyTemporaryForRefactorRequestConfirmationList.js +++ b/src/components/MoneyTemporaryForRefactorRequestConfirmationList.js @@ -1,6 +1,5 @@ import {useIsFocused} from '@react-navigation/native'; import {format} from 'date-fns'; -import {isTag} from 'domhandler'; import {isUndefined} from 'lodash'; import lodashGet from 'lodash/get'; import PropTypes from 'prop-types'; From f0c955bb6c9b13479de91e813ce73a7761ab0301 Mon Sep 17 00:00:00 2001 From: dukenv0307 Date: Tue, 5 Mar 2024 09:24:17 +0700 Subject: [PATCH 08/10] fix add canUseViolation --- .../MoneyTemporaryForRefactorRequestConfirmationList.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/MoneyTemporaryForRefactorRequestConfirmationList.js b/src/components/MoneyTemporaryForRefactorRequestConfirmationList.js index 96f7a3187d24..fb0e4884a841 100755 --- a/src/components/MoneyTemporaryForRefactorRequestConfirmationList.js +++ b/src/components/MoneyTemporaryForRefactorRequestConfirmationList.js @@ -764,7 +764,7 @@ function MoneyTemporaryForRefactorRequestConfirmationList({ isSupplementary: !isCategoryRequired, }, ..._.map(policyTagLists, ({name, required}, index) => { - const isTagRequired = !isUndefined(required) && required; + const isTagRequired = isUndefined(required) ? false : canUseViolations && required; return { item: ( Date: Wed, 6 Mar 2024 07:46:07 +0700 Subject: [PATCH 09/10] fix lint --- .../MoneyTemporaryForRefactorRequestConfirmationList.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/MoneyTemporaryForRefactorRequestConfirmationList.js b/src/components/MoneyTemporaryForRefactorRequestConfirmationList.js index 43d2bb31dc84..2e4a1f5f937b 100755 --- a/src/components/MoneyTemporaryForRefactorRequestConfirmationList.js +++ b/src/components/MoneyTemporaryForRefactorRequestConfirmationList.js @@ -1,7 +1,7 @@ import {useIsFocused} from '@react-navigation/native'; import {format} from 'date-fns'; -import {isUndefined} from 'lodash'; import Str from 'expensify-common/lib/str'; +import {isUndefined} from 'lodash'; import lodashGet from 'lodash/get'; import PropTypes from 'prop-types'; import React, {useCallback, useEffect, useMemo, useReducer, useRef, useState} from 'react'; From 025be6bf577f86decae8e0d0dd5058f5e680da8f Mon Sep 17 00:00:00 2001 From: dukenv0307 Date: Mon, 1 Apr 2024 10:32:54 +0700 Subject: [PATCH 10/10] fix conflict --- .../MoneyTemporaryForRefactorRequestConfirmationList.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/MoneyTemporaryForRefactorRequestConfirmationList.js b/src/components/MoneyTemporaryForRefactorRequestConfirmationList.js index 8b40e7ef5d37..664854a2f2a7 100755 --- a/src/components/MoneyTemporaryForRefactorRequestConfirmationList.js +++ b/src/components/MoneyTemporaryForRefactorRequestConfirmationList.js @@ -514,7 +514,7 @@ function MoneyTemporaryForRefactorRequestConfirmationList({ if (updatedTagsString !== TransactionUtils.getTag(transaction) && updatedTagsString) { IOU.setMoneyRequestTag(transaction.transactionID, updatedTagsString); } - }, [policyTagLists, transaction, policyTags, isTagRequired, canUseViolations]); + }, [policyTagLists, transaction, policyTags, canUseViolations]); /** * @param {Object} option