Skip to content

Commit

Permalink
Merge pull request #45331 from software-mansion-labs/@cdOut/receipt-c…
Browse files Browse the repository at this point in the history
…olor-fix

[Follow-up fix] Correct color pick for EReceipt Thumbnails and remove duplication of MCC and Trip icons.
  • Loading branch information
grgia authored Jul 23, 2024
2 parents a3df238 + 4547361 commit 8cfff41
Show file tree
Hide file tree
Showing 17 changed files with 24 additions and 17 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
diff --git a/node_modules/react-native/Libraries/Text/Text/NSTextStorage+FontScaling.m b/node_modules/react-native/Libraries/Text/Text/NSTextStorage+FontScaling.m
index ee391a2..cdd6358 100644
--- a/node_modules/react-native/Libraries/Text/Text/NSTextStorage+FontScaling.m
+++ b/node_modules/react-native/Libraries/Text/Text/NSTextStorage+FontScaling.m
@@ -19,6 +19,11 @@ - (void)scaleFontSizeToFitSize:(CGSize)size
minimumFontSize:(CGFloat)minimumFontSize
maximumFontSize:(CGFloat)maximumFontSize
{
+ // Don't scale the font if it already fits
+ if ([self compareToSize:size thresholdRatio:0.01] & RCTTextSizeComparisonSmaller) {
+ return;
+ }
+
CGFloat bottomRatio = 1.0 / 128.0;
CGFloat topRatio = 128.0;
CGFloat ratio = 1.0;
File renamed without changes.
6 changes: 3 additions & 3 deletions src/components/EReceiptThumbnail.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,7 @@ const backgroundImages = {
function EReceiptThumbnail({transaction, borderRadius, fileExtension, isReceiptThumbnail = false, centerIconV = true, iconSize = 'large'}: EReceiptThumbnailProps) {
const styles = useThemeStyles();
const StyleUtils = useStyleUtils();
const {tripIcon, tripBGColor} = TripReservationUtils.getTripEReceiptData(transaction);
const colorCode = tripBGColor ?? (isReceiptThumbnail ? StyleUtils.getFileExtensionColorCode(fileExtension) : StyleUtils.getEReceiptColorCode(transaction));
const colorCode = isReceiptThumbnail ? StyleUtils.getFileExtensionColorCode(fileExtension) : StyleUtils.getEReceiptColorCode(transaction);

const backgroundImage = useMemo(() => backgroundImages[colorCode], [colorCode]);

Expand All @@ -68,6 +67,7 @@ function EReceiptThumbnail({transaction, borderRadius, fileExtension, isReceiptT
const transactionDetails = ReportUtils.getTransactionDetails(transaction);
const transactionMCCGroup = transactionDetails?.mccGroup;
const MCCIcon = transactionMCCGroup ? MCCIcons[`${transactionMCCGroup}`] : undefined;
const tripIcon = TripReservationUtils.getTripEReceiptIcon(transaction);

let receiptIconWidth: number = variables.eReceiptIconWidth;
let receiptIconHeight: number = variables.eReceiptIconHeight;
Expand Down Expand Up @@ -143,7 +143,7 @@ function EReceiptThumbnail({transaction, borderRadius, fileExtension, isReceiptT
fill={primaryColor}
/>
) : null}
{tripIcon ? (
{!MCCIcon && tripIcon ? (
<Icon
src={tripIcon}
height={receiptMCCSize}
Expand Down
19 changes: 5 additions & 14 deletions src/libs/TripReservationUtils.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import type {EReceiptColorName} from '@styles/utils/types';
import * as Expensicons from '@src/components/Icon/Expensicons';
import CONST from '@src/CONST';
import type {Reservation, ReservationType} from '@src/types/onyx/Transaction';
Expand All @@ -25,26 +24,18 @@ function getReservationsFromTripTransactions(transactions: Transaction[]): Reser
.flat();
}

type TripEReceiptData = {
/** Icon asset associated with the type of trip reservation */
tripIcon?: IconAsset;

/** EReceipt background color associated with the type of trip reservation */
tripBGColor?: EReceiptColorName;
};

function getTripEReceiptData(transaction?: Transaction): TripEReceiptData {
function getTripEReceiptIcon(transaction?: Transaction): IconAsset | undefined {
const reservationType = transaction ? transaction.receipt?.reservationList?.[0]?.type : '';

switch (reservationType) {
case CONST.RESERVATION_TYPE.FLIGHT:
case CONST.RESERVATION_TYPE.CAR:
return {tripIcon: Expensicons.Plane, tripBGColor: CONST.ERECEIPT_COLORS.PINK};
return Expensicons.Plane;
case CONST.RESERVATION_TYPE.HOTEL:
return {tripIcon: Expensicons.Bed, tripBGColor: CONST.ERECEIPT_COLORS.YELLOW};
return Expensicons.Bed;
default:
return {};
return undefined;
}
}

export {getTripReservationIcon, getReservationsFromTripTransactions, getTripEReceiptData};
export {getTripReservationIcon, getReservationsFromTripTransactions, getTripEReceiptIcon};

0 comments on commit 8cfff41

Please sign in to comment.