Skip to content

Commit

Permalink
updated smart scan failed violation
Browse files Browse the repository at this point in the history
  • Loading branch information
FitseTLT committed Feb 18, 2025
1 parent 84885ab commit 866ce5b
Show file tree
Hide file tree
Showing 6 changed files with 18 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ import {getCleanedTagName} from '@libs/PolicyUtils';
import {getThumbnailAndImageURIs} from '@libs/ReceiptUtils';
import {getOriginalMessage, getReportAction, isMessageDeleted, isMoneyRequestAction as isMoneyRequestActionReportActionsUtils} from '@libs/ReportActionsUtils';
import {
canEditMoneyRequest,
getTransactionDetails,
getWorkspaceIcon,
isPaidGroupPolicy,
Expand Down Expand Up @@ -253,7 +254,8 @@ function MoneyRequestPreviewContent({
}
const firstViolation = violations?.at(0);
if (firstViolation) {
const violationMessage = ViolationsUtils.getViolationTranslation(firstViolation, translate);
const canEdit = isMoneyRequestAction && canEditMoneyRequest(action, transaction);
const violationMessage = ViolationsUtils.getViolationTranslation(firstViolation, translate, canEdit);
const violationsCount = violations?.filter((v) => v.type === CONST.VIOLATION_TYPES.VIOLATION).length ?? 0;
const isTooLong = violationsCount > 1 || violationMessage.length > 15;
const hasViolationsAndFieldErrors = violationsCount > 0 && hasFieldErrors;
Expand Down
8 changes: 5 additions & 3 deletions src/components/ReportActionItem/MoneyRequestView.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -328,7 +328,7 @@ function MoneyRequestView({report, shouldShowAnimatedBackground, readonly = fals
const firstViolation = violations.at(0);

if (firstViolation) {
return ViolationsUtils.getViolationTranslation(firstViolation, translate);
return ViolationsUtils.getViolationTranslation(firstViolation, translate, canEdit);
}
}

Expand All @@ -349,6 +349,7 @@ function MoneyRequestView({report, shouldShowAnimatedBackground, readonly = fals
canEditAmount,
canEditDate,
canEditMerchant,
canEdit,
],
);

Expand Down Expand Up @@ -411,15 +412,15 @@ function MoneyRequestView({report, shouldShowAnimatedBackground, readonly = fals
const isReceiptFieldViolation = receiptFieldViolationNames.includes(violation.name);
const isReceiptImageViolation = receiptImageViolationNames.includes(violation.name);
if (isReceiptFieldViolation || isReceiptImageViolation) {
const violationMessage = ViolationsUtils.getViolationTranslation(violation, translate);
const violationMessage = ViolationsUtils.getViolationTranslation(violation, translate, canEdit);
allViolations.push(violationMessage);
if (isReceiptImageViolation) {
imageViolations.push(violationMessage);
}
}
}
return [imageViolations, allViolations];
}, [transactionViolations, translate]);
}, [transactionViolations, translate, canEdit]);

const receiptRequiredViolation = transactionViolations?.some((violation) => violation.name === CONST.VIOLATIONS.RECEIPT_REQUIRED);
const customRulesViolation = transactionViolations?.some((violation) => violation.name === CONST.VIOLATIONS.CUSTOM_RULES);
Expand Down Expand Up @@ -812,6 +813,7 @@ function MoneyRequestView({report, shouldShowAnimatedBackground, readonly = fals
containerStyle={[styles.mt1]}
textStyle={[styles.ph0]}
isLast
canEdit={canEdit}
/>
)}
</View>
Expand Down
9 changes: 6 additions & 3 deletions src/components/ViolationMessages.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,15 @@ import ViolationsUtils from '@libs/Violations/ViolationsUtils';
import type {TransactionViolation} from '@src/types/onyx';
import Text from './Text';

type ViolationMessagesProps = {violations: TransactionViolation[]; isLast?: boolean; containerStyle?: StyleProp<ViewStyle>; textStyle?: StyleProp<TextStyle>};
type ViolationMessagesProps = {violations: TransactionViolation[]; isLast?: boolean; containerStyle?: StyleProp<ViewStyle>; textStyle?: StyleProp<TextStyle>; canEdit: boolean};

export default function ViolationMessages({violations, isLast, containerStyle, textStyle}: ViolationMessagesProps) {
export default function ViolationMessages({violations, isLast, containerStyle, textStyle, canEdit}: ViolationMessagesProps) {
const styles = useThemeStyles();
const {translate} = useLocalize();
const violationMessages = useMemo(() => violations.map((violation) => [violation.name, ViolationsUtils.getViolationTranslation(violation, translate)]), [translate, violations]);
const violationMessages = useMemo(
() => violations.map((violation) => [violation.name, ViolationsUtils.getViolationTranslation(violation, translate, canEdit)]),
[canEdit, translate, violations],
);

return (
<View style={[styles.mtn1, isLast ? styles.mb2 : styles.mb1, containerStyle, styles.gap1]}>
Expand Down
2 changes: 1 addition & 1 deletion src/languages/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5449,7 +5449,7 @@ const translations = {
adminBrokenConnectionError: 'Receipt pending due to broken bank connection. Please resolve in ',
memberBrokenConnectionError: 'Receipt pending due to broken bank connection. Please ask a workspace admin to resolve.',
markAsCashToIgnore: 'Mark as cash to ignore and request payment.',
smartscanFailed: 'Receipt scanning failed. Enter details manually.',
smartscanFailed: ({canEdit = true}) => `Receipt scanning failed.${canEdit ? ' Enter details manually.' : ''}`,
someTagLevelsRequired: ({tagName}: ViolationsTagOutOfPolicyParams = {}) => `Missing ${tagName ?? 'Tag'}`,
tagOutOfPolicy: ({tagName}: ViolationsTagOutOfPolicyParams = {}) => `${tagName ?? 'Tag'} no longer valid`,
taxAmountChanged: 'Tax amount was modified',
Expand Down
2 changes: 1 addition & 1 deletion src/languages/es.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5966,7 +5966,7 @@ const translations = {
adminBrokenConnectionError: 'Recibo pendiente debido a una conexión bancaria rota. Por favor, resuélvelo en ',
memberBrokenConnectionError: 'Recibo pendiente debido a una conexión bancaria rota. Por favor, pide a un administrador del espacio de trabajo que lo resuelva.',
markAsCashToIgnore: 'Márcalo como efectivo para ignorar y solicitar el pago.',
smartscanFailed: 'No se pudo escanear el recibo. Introduce los datos manualmente',
smartscanFailed: ({canEdit = true}) => `No se pudo escanear el recibo.${canEdit ? ' Introduce los datos manualmente.' : ''}`,
someTagLevelsRequired: ({tagName}: ViolationsTagOutOfPolicyParams = {}) => `Falta ${tagName ?? 'Tag'}`,
tagOutOfPolicy: ({tagName}: ViolationsTagOutOfPolicyParams = {}) => `La etiqueta ${tagName ? `${tagName} ` : ''}ya no es válida`,
taxAmountChanged: 'El importe del impuesto fue modificado',
Expand Down
4 changes: 2 additions & 2 deletions src/libs/Violations/ViolationsUtils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -293,7 +293,7 @@ const ViolationsUtils = {
* possible values could be either translation keys that resolve to strings or translation keys that resolve to
* functions.
*/
getViolationTranslation(violation: TransactionViolation, translate: LocaleContextProps['translate']): string {
getViolationTranslation(violation: TransactionViolation, translate: LocaleContextProps['translate'], canEdit = true): string {
const {
brokenBankConnection = false,
isAdmin = false,
Expand Down Expand Up @@ -380,7 +380,7 @@ const ViolationsUtils = {
rterType,
});
case 'smartscanFailed':
return translate('violations.smartscanFailed');
return translate('violations.smartscanFailed', {canEdit});
case 'someTagLevelsRequired':
return translate('violations.someTagLevelsRequired', {tagName});
case 'tagOutOfPolicy':
Expand Down

0 comments on commit 866ce5b

Please sign in to comment.