Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat/track whispers #38709

Merged
merged 104 commits into from
Apr 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
104 commits
Select commit Hold shift + click to select a range
ce8e379
Basic handling for new ACTIONABLETRACKEXPENSEWHISPER
thienlnam Mar 19, 2024
cb398c2
Show buttons
thienlnam Mar 19, 2024
bb4483f
adds a draft transaction while moving a tracked to request someone
ishpaul777 Mar 20, 2024
3cf05a6
Merge branch 'main' into feat/track-whispers
ishpaul777 Mar 20, 2024
403765b
Merge branch 'Expensify:main' into feat/track-whispers
ishpaul777 Mar 21, 2024
5461f4c
adds route param for move iou action
ishpaul777 Mar 21, 2024
53b3160
Merge branch 'Expensify:main' into feat/track-whispers
ishpaul777 Mar 22, 2024
8f22cc8
Merge branch 'Expensify:main' into feat/track-whispers
ishpaul777 Mar 23, 2024
0099a39
fixes routes
ishpaul777 Mar 23, 2024
a3dc485
adds dismiss actionable whisper
ishpaul777 Mar 23, 2024
7573852
fixes type error and run prettier
ishpaul777 Mar 23, 2024
cabc1e7
fixes more type errors
ishpaul777 Mar 23, 2024
161c67e
fixes lint
ishpaul777 Mar 23, 2024
9482163
prettier diffs
ishpaul777 Mar 23, 2024
113d7b4
scroll down when whisper is resolved
ishpaul777 Mar 23, 2024
4c3bd1a
exclude workspace chat from the participant list
ishpaul777 Mar 23, 2024
816a190
adds api command for request someone whisper
ishpaul777 Mar 23, 2024
9bed62e
Merge branch 'Expensify:main' into feat/track-whispers
ishpaul777 Mar 24, 2024
0420ab5
adds basic handling for categorize tracked exp.
ishpaul777 Mar 24, 2024
deb3d6b
fixes type errors
ishpaul777 Mar 24, 2024
0d4a429
fix navigation from confirmation page to catgory page
ishpaul777 Mar 24, 2024
f860fa0
run prettier
ishpaul777 Mar 24, 2024
98e97ae
Merge branch 'Expensify:main' into feat/track-whispers
ishpaul777 Mar 26, 2024
a460367
polish categorize flow
ishpaul777 Mar 26, 2024
302b536
remove unused code
ishpaul777 Mar 26, 2024
2ba1c65
fix header title for whisper actions
ishpaul777 Mar 26, 2024
127a53c
Merge branch 'Expensify:main' into feat/track-whispers
ishpaul777 Mar 26, 2024
65544d2
adds categorize api call
ishpaul777 Mar 26, 2024
60eed83
fix money request reportid
ishpaul777 Mar 26, 2024
a20ab3b
fixes blocking vie conditional
ishpaul777 Mar 26, 2024
07e2d13
Merge branch 'Expensify:main' into feat/track-whispers
ishpaul777 Mar 27, 2024
007659f
deleted tracked exp. when moving transaction
ishpaul777 Mar 27, 2024
0832056
fix lint
ishpaul777 Mar 27, 2024
89a9f65
Merge branch 'main' of https://github.com/ishpaul777/App
ishpaul777 Mar 27, 2024
ea86d73
Merge branch 'main' of https://github.com/ishpaul777/App
ishpaul777 Mar 28, 2024
1a7adb5
Merge branch 'main' of https://github.com/ishpaul777/App
ishpaul777 Mar 29, 2024
68a6a5c
Merge branch 'main' into feat/track-whispers
ishpaul777 Mar 30, 2024
9574470
Revert "Add One Transaction Report View"
ishpaul777 Mar 30, 2024
904379f
Merge pull request #10 from ishpaul777/revert-36934-nikki-one-transac…
ishpaul777 Mar 30, 2024
4032202
adds share transaction view
ishpaul777 Mar 30, 2024
6f29332
Revert "Revert "Add One Transaction Report View""
ishpaul777 Mar 30, 2024
d92c29f
Merge pull request #11 from ishpaul777/revert-10-revert-36934-nikki-o…
ishpaul777 Mar 30, 2024
c877ebd
Merge branch 'main' of https://github.com/ishpaul777/App
ishpaul777 Apr 1, 2024
85e22fb
Merge branch 'main' of https://github.com/ishpaul777/App
ishpaul777 Apr 2, 2024
e6bb01d
Merge branch 'main' into feat/track-whispers
ishpaul777 Apr 2, 2024
31cf034
fix conflict after merge
ishpaul777 Apr 2, 2024
3dc6e49
fixes crashes after merge
ishpaul777 Apr 2, 2024
d405c7b
Merge branch 'Expensify:main' into main
ishpaul777 Apr 3, 2024
cf569ed
Merge branch 'main' into feat/track-whispers
ishpaul777 Apr 3, 2024
819b7b3
fixes lint
ishpaul777 Apr 3, 2024
a76bcb0
fixes crash after converting request
ishpaul777 Apr 3, 2024
1f93ea9
clean up
ishpaul777 Apr 3, 2024
0d5b459
adds todo
ishpaul777 Apr 3, 2024
0920636
Merge branch 'Expensify:main' into main
ishpaul777 Apr 4, 2024
9b5b61a
Merge branch 'main' into feat/track-whispers
ishpaul777 Apr 4, 2024
fa0336a
clean up v2
ishpaul777 Apr 5, 2024
bf2ec02
redirect to invite page after share with accountant
ishpaul777 Apr 5, 2024
fa449cb
Merge branch 'Expensify:main' into main
ishpaul777 Apr 6, 2024
21d7ce9
Merge branch 'main' into feat/track-whispers
ishpaul777 Apr 6, 2024
505162b
resolve issue with move scan request
ishpaul777 Apr 7, 2024
c721c6e
fixes lint error
ishpaul777 Apr 7, 2024
1c0e025
Merge branch 'Expensify:main' into main
ishpaul777 Apr 9, 2024
b3b76cf
Merge branch 'Expensify:main' into main
ishpaul777 Apr 10, 2024
f584cb2
Merge branch 'main' into feat/track-whispers
ishpaul777 Apr 10, 2024
cfdfca1
fix conflicts
ishpaul777 Apr 10, 2024
a998fac
fix type and lint checks
ishpaul777 Apr 10, 2024
62ea474
fix type checks
ishpaul777 Apr 10, 2024
e3a235c
Merge branch 'Expensify:main' into main
ishpaul777 Apr 11, 2024
76a1d9f
Merge branch 'main' into feat/track-whispers
ishpaul777 Apr 11, 2024
09d0b17
fix type errors
ishpaul777 Apr 11, 2024
2492c2e
code formatting
ishpaul777 Apr 11, 2024
70e771c
fix conflict error
ishpaul777 Apr 11, 2024
2e8b99e
resolve lint
ishpaul777 Apr 11, 2024
40a85a6
added more params to ConvertTrackedExpenseToRequest
ishpaul777 Apr 11, 2024
149aeba
Merge branch 'Expensify:main' into main
ishpaul777 Apr 12, 2024
7bf100f
Merge branch 'main' into feat/track-whispers
ishpaul777 Apr 12, 2024
575fc22
fixes wrong date format in confirmation page
ishpaul777 Apr 12, 2024
326900e
handles distance requests
ishpaul777 Apr 12, 2024
3c88670
fixes add receipt flow
ishpaul777 Apr 12, 2024
74fb259
run prettier
ishpaul777 Apr 12, 2024
f9b310d
fixes distance receipt not showing on request
ishpaul777 Apr 12, 2024
969d6e6
prettier
ishpaul777 Apr 12, 2024
a4541dd
fixes translation
ishpaul777 Apr 12, 2024
3759c31
Merge branch 'Expensify:main' into feat/track-whispers
ishpaul777 Apr 12, 2024
43cf827
fixes param order in convertTrackedExpenseToRequest
ishpaul777 Apr 12, 2024
a78536e
fixes invite flow
ishpaul777 Apr 13, 2024
ee54ff8
Merge branch 'Expensify:main' into main
ishpaul777 Apr 14, 2024
abe4a6f
Merge branch 'main' into feat/track-whispers
ishpaul777 Apr 14, 2024
7402158
resolved conflicts
ishpaul777 Apr 14, 2024
cfd471b
rename write commands
ishpaul777 Apr 14, 2024
705c4c0
removes split for categorize and share action
ishpaul777 Apr 15, 2024
c0c3e90
fixes infinite loading
ishpaul777 Apr 15, 2024
8d4f91d
formatting and fixes onyx data for moved expense
ishpaul777 Apr 15, 2024
cbac7dc
Merge branch 'main' into feat/track-whispers
ishpaul777 Apr 15, 2024
34c1c4d
prettier
ishpaul777 Apr 15, 2024
cdcd2c1
remove console log
ishpaul777 Apr 15, 2024
2d11f33
fixes lint
ishpaul777 Apr 15, 2024
8515852
remove console
ishpaul777 Apr 15, 2024
50402d2
pass reportPreviewReportActionID to api for request, share and catego…
ishpaul777 Apr 15, 2024
5bfd529
fixes lint
ishpaul777 Apr 16, 2024
a384d28
fixes invite button padding
ishpaul777 Apr 16, 2024
6ca3199
fixes lint warning
ishpaul777 Apr 16, 2024
3064d3a
fixes category not showing
ishpaul777 Apr 16, 2024
c5e794b
disable threads for whisper message and use correct translations
ishpaul777 Apr 16, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 14 additions & 1 deletion src/CONST.ts
Original file line number Diff line number Diff line change
Expand Up @@ -633,9 +633,10 @@ const CONST = {
LIMIT: 50,
// OldDot Actions render getMessage from Web-Expensify/lib/Report/Action PHP files via getMessageOfOldDotReportAction in ReportActionsUtils.ts
TYPE: {
ACTIONABLEJOINREQUEST: 'ACTIONABLEJOINREQUEST',
ACTIONABLEMENTIONWHISPER: 'ACTIONABLEMENTIONWHISPER',
ACTIONABLETRACKEXPENSEWHISPER: 'ACTIONABLETRACKEXPENSEWHISPER',
ADDCOMMENT: 'ADDCOMMENT',
ACTIONABLEJOINREQUEST: 'ACTIONABLEJOINREQUEST',
APPROVED: 'APPROVED',
CHANGEFIELD: 'CHANGEFIELD', // OldDot Action
CHANGEPOLICY: 'CHANGEPOLICY', // OldDot Action
Expand Down Expand Up @@ -768,6 +769,9 @@ const CONST = {
INVITE: 'invited',
NOTHING: 'nothing',
},
ACTIONABLE_TRACK_EXPENSE_WHISPER_RESOLUTION: {
NOTHING: 'nothing',
},
ACTIONABLE_MENTION_JOIN_WORKSPACE_RESOLUTION: {
ACCEPT: 'accept',
DECLINE: 'decline',
Expand Down Expand Up @@ -1407,6 +1411,9 @@ const CONST = {
ACTION: {
EDIT: 'edit',
CREATE: 'create',
MOVE: 'move',
CATEGORIZE: 'categorize',
SHARE: 'share',
},
DEFAULT_AMOUNT: 0,
TYPE: {
Expand All @@ -1429,6 +1436,7 @@ const CONST = {
DELETE: 'delete',
APPROVE: 'approve',
TRACK: 'track',
MOVE: 'move',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why was this constant added? I can't find it referenced anywhere so I am thinking of removing it in this PR.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes this can be removed, Sorry I didn't remember to remove it when i no longer need it : (

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, thank you! I'll move forward with removing it.

},
AMOUNT_MAX_LENGTH: 10,
RECEIPT_STATE: {
Expand All @@ -1448,6 +1456,11 @@ const CONST = {
CANCEL_REASON: {
PAYMENT_EXPIRED: 'CANCEL_REASON_PAYMENT_EXPIRED',
},
SHARE: {
ROLE: {
ACCOUNTANT: 'accountant',
},
},
},

GROWL: {
Expand Down
10 changes: 5 additions & 5 deletions src/ROUTES.ts
Original file line number Diff line number Diff line change
Expand Up @@ -301,8 +301,8 @@ const ROUTES = {
getRoute: (reportID: string) => `r/${reportID}/members` as const,
},
ROOM_INVITE: {
route: 'r/:reportID/invite',
getRoute: (reportID: string) => `r/${reportID}/invite` as const,
route: 'r/:reportID/invite/:role?',
getRoute: (reportID: string, role?: string) => `r/${reportID}/invite/${role}` as const,
},
MONEY_REQUEST_PARTICIPANTS: {
route: ':iouType/new/participants/:reportID?',
Expand Down Expand Up @@ -376,9 +376,9 @@ const ROUTES = {
getUrlWithBackToParam(`${action}/${iouType}/merchant/${transactionID}/${reportID}`, backTo),
},
MONEY_REQUEST_STEP_PARTICIPANTS: {
route: 'create/:iouType/participants/:transactionID/:reportID',
getRoute: (iouType: ValueOf<typeof CONST.IOU.TYPE>, transactionID: string, reportID: string, backTo = '') =>
getUrlWithBackToParam(`create/${iouType}/participants/${transactionID}/${reportID}`, backTo),
route: ':action/:iouType/participants/:transactionID/:reportID',
getRoute: (iouType: ValueOf<typeof CONST.IOU.TYPE>, transactionID: string, reportID: string, backTo = '', action: ValueOf<typeof CONST.IOU.ACTION> = 'create') =>
getUrlWithBackToParam(`${action}/${iouType}/participants/${transactionID}/${reportID}`, backTo),
},
MONEY_REQUEST_STEP_SCAN: {
route: ':action/:iouType/scan/:transactionID/:reportID',
Expand Down
100 changes: 30 additions & 70 deletions src/components/MoneyTemporaryForRefactorRequestConfirmationList.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import * as ReceiptUtils from '@libs/ReceiptUtils';
import * as ReportUtils from '@libs/ReportUtils';
import playSound, {SOUNDS} from '@libs/Sound';
import * as TransactionUtils from '@libs/TransactionUtils';
import tryResolveUrlFromApiRoot from '@libs/tryResolveUrlFromApiRoot';
import * as IOU from '@userActions/IOU';
import CONST from '@src/CONST';
import ONYXKEYS from '@src/ONYXKEYS';
Expand Down Expand Up @@ -160,6 +161,8 @@ type MoneyRequestConfirmationListProps = MoneyRequestConfirmationListOnyxProps &
hasSmartScanFailed?: boolean;

reportActionID?: string;

action?: ValueOf<typeof CONST.IOU.ACTION>;
};

const getTaxAmount = (transaction: OnyxEntry<OnyxTypes.Transaction>, defaultTaxValue: string) => {
Expand Down Expand Up @@ -205,6 +208,7 @@ function MoneyTemporaryForRefactorRequestConfirmationList({
onToggleBillable,
hasSmartScanFailed,
reportActionID,
action = CONST.IOU.ACTION.CREATE,
}: MoneyRequestConfirmationListProps) {
const theme = useTheme();
const styles = useThemeStyles();
Expand Down Expand Up @@ -248,9 +252,9 @@ function MoneyTemporaryForRefactorRequestConfirmationList({

// A flag for showing the billable field
const shouldShowBillable = policy?.disabledFields?.defaultBillable === false;

const isMovingTransactionFromTrackExpense = IOUUtils.isMovingTransactionFromTrackExpense(action);
const hasRoute = TransactionUtils.hasRoute(transaction);
const isDistanceRequestWithPendingRoute = isDistanceRequest && (!hasRoute || !rate);
const isDistanceRequestWithPendingRoute = isDistanceRequest && (!hasRoute || !rate) && !isMovingTransactionFromTrackExpense;
const formattedAmount = isDistanceRequestWithPendingRoute
? ''
: CurrencyUtils.convertToDisplayString(
Expand Down Expand Up @@ -452,7 +456,7 @@ function MoneyTemporaryForRefactorRequestConfirmationList({
}, [selectedParticipants, hasMultipleParticipants, personalDetailsOfPayee]);

useEffect(() => {
if (!isDistanceRequest) {
if (!isDistanceRequest || isMovingTransactionFromTrackExpense) {
return;
}

Expand All @@ -465,7 +469,7 @@ function MoneyTemporaryForRefactorRequestConfirmationList({

const distanceMerchant = DistanceRequestUtils.getDistanceMerchant(hasRoute, distance, unit, rate ?? 0, currency ?? 'USD', translate, toLocaleDigit);
IOU.setMoneyRequestMerchant(transaction?.transactionID ?? '', distanceMerchant, true);
}, [isDistanceRequestWithPendingRoute, hasRoute, distance, unit, rate, currency, translate, toLocaleDigit, isDistanceRequest, transaction]);
}, [isDistanceRequestWithPendingRoute, hasRoute, distance, unit, rate, currency, translate, toLocaleDigit, isDistanceRequest, transaction, action, isMovingTransactionFromTrackExpense]);

// Auto select the category if there is only one enabled category and it is required
useEffect(() => {
Expand Down Expand Up @@ -656,9 +660,7 @@ function MoneyTemporaryForRefactorRequestConfirmationList({
Navigation.navigate(ROUTES.EDIT_SPLIT_BILL.getRoute(reportID, reportActionID ?? '', CONST.EDIT_REQUEST_FIELD.AMOUNT));
return;
}
Navigation.navigate(
ROUTES.MONEY_REQUEST_STEP_AMOUNT.getRoute(CONST.IOU.ACTION.CREATE, iouType, transaction?.transactionID ?? '', reportID, Navigation.getActiveRouteWithoutParams()),
);
Navigation.navigate(ROUTES.MONEY_REQUEST_STEP_AMOUNT.getRoute(action, iouType, transaction?.transactionID ?? '', reportID, Navigation.getActiveRouteWithoutParams()));
}}
style={[styles.moneyRequestMenuItem, styles.mt2]}
titleStyle={styles.moneyRequestConfirmationAmount}
Expand All @@ -680,13 +682,7 @@ function MoneyTemporaryForRefactorRequestConfirmationList({
description={translate('common.description')}
onPress={() => {
Navigation.navigate(
ROUTES.MONEY_REQUEST_STEP_DESCRIPTION.getRoute(
CONST.IOU.ACTION.CREATE,
iouType,
transaction?.transactionID ?? '',
reportID,
Navigation.getActiveRouteWithoutParams(),
),
ROUTES.MONEY_REQUEST_STEP_DESCRIPTION.getRoute(action, iouType, transaction?.transactionID ?? '', reportID, Navigation.getActiveRouteWithoutParams()),
);
}}
style={[styles.moneyRequestMenuItem]}
Expand All @@ -703,25 +699,20 @@ function MoneyTemporaryForRefactorRequestConfirmationList({
item: (
<MenuItemWithTopDescription
key={translate('common.distance')}
shouldShowRightIcon={!isReadOnly}
shouldShowRightIcon={!isReadOnly && !isMovingTransactionFromTrackExpense}
title={isMerchantEmpty ? '' : iouMerchant}
description={translate('common.distance')}
style={[styles.moneyRequestMenuItem]}
titleStyle={styles.flex1}
onPress={() =>
Navigation.navigate(
ROUTES.MONEY_REQUEST_STEP_DISTANCE.getRoute(
CONST.IOU.ACTION.CREATE,
iouType,
transaction?.transactionID ?? '',
reportID,
Navigation.getActiveRouteWithoutParams(),
),
ROUTES.MONEY_REQUEST_STEP_DISTANCE.getRoute(action, iouType, transaction?.transactionID ?? '', reportID, Navigation.getActiveRouteWithoutParams()),
)
}
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
disabled={didConfirm}
interactive={!isReadOnly}
// todo: handle edit for transaction while moving from track expense
interactive={!isReadOnly && !isMovingTransactionFromTrackExpense}
/>
),
shouldShow: isDistanceRequest,
Expand All @@ -738,13 +729,7 @@ function MoneyTemporaryForRefactorRequestConfirmationList({
titleStyle={styles.flex1}
onPress={() => {
Navigation.navigate(
ROUTES.MONEY_REQUEST_STEP_MERCHANT.getRoute(
CONST.IOU.ACTION.CREATE,
iouType,
transaction?.transactionID ?? '',
reportID,
Navigation.getActiveRouteWithoutParams(),
),
ROUTES.MONEY_REQUEST_STEP_MERCHANT.getRoute(action, iouType, transaction?.transactionID ?? '', reportID, Navigation.getActiveRouteWithoutParams()),
);
}}
disabled={didConfirm}
Expand All @@ -768,9 +753,7 @@ function MoneyTemporaryForRefactorRequestConfirmationList({
style={[styles.moneyRequestMenuItem]}
titleStyle={styles.flex1}
onPress={() => {
Navigation.navigate(
ROUTES.MONEY_REQUEST_STEP_DATE.getRoute(CONST.IOU.ACTION.CREATE, iouType, transaction?.transactionID ?? '', reportID, Navigation.getActiveRouteWithoutParams()),
);
Navigation.navigate(ROUTES.MONEY_REQUEST_STEP_DATE.getRoute(action, iouType, transaction?.transactionID ?? '', reportID, Navigation.getActiveRouteWithoutParams()));
}}
disabled={didConfirm}
interactive={!isReadOnly}
Expand All @@ -791,13 +774,7 @@ function MoneyTemporaryForRefactorRequestConfirmationList({
numberOfLinesTitle={2}
onPress={() =>
Navigation.navigate(
ROUTES.MONEY_REQUEST_STEP_CATEGORY.getRoute(
CONST.IOU.ACTION.CREATE,
iouType,
transaction?.transactionID ?? '',
reportID,
Navigation.getActiveRouteWithoutParams(),
),
ROUTES.MONEY_REQUEST_STEP_CATEGORY.getRoute(action, iouType, transaction?.transactionID ?? '', reportID, Navigation.getActiveRouteWithoutParams()),
)
}
style={[styles.moneyRequestMenuItem]}
Expand All @@ -808,7 +785,7 @@ function MoneyTemporaryForRefactorRequestConfirmationList({
/>
),
shouldShow: shouldShowCategories,
isSupplementary: !isCategoryRequired,
isSupplementary: action === CONST.IOU.ACTION.CATEGORIZE ? false : !isCategoryRequired,
},
...policyTagLists.map(({name, required}, index) => {
const isTagRequired = required === undefined ? false : canUseViolations && required;
Expand All @@ -822,14 +799,7 @@ function MoneyTemporaryForRefactorRequestConfirmationList({
numberOfLinesTitle={2}
onPress={() =>
Navigation.navigate(
ROUTES.MONEY_REQUEST_STEP_TAG.getRoute(
CONST.IOU.ACTION.CREATE,
iouType,
index,
transaction?.transactionID ?? '',
reportID,
Navigation.getActiveRouteWithoutParams(),
),
ROUTES.MONEY_REQUEST_STEP_TAG.getRoute(action, iouType, index, transaction?.transactionID ?? '', reportID, Navigation.getActiveRouteWithoutParams()),
)
}
style={[styles.moneyRequestMenuItem]}
Expand All @@ -853,13 +823,7 @@ function MoneyTemporaryForRefactorRequestConfirmationList({
titleStyle={styles.flex1}
onPress={() =>
Navigation.navigate(
ROUTES.MONEY_REQUEST_STEP_TAX_RATE.getRoute(
CONST.IOU.ACTION.CREATE,
iouType,
transaction?.transactionID ?? '',
reportID,
Navigation.getActiveRouteWithoutParams(),
),
ROUTES.MONEY_REQUEST_STEP_TAX_RATE.getRoute(action, iouType, transaction?.transactionID ?? '', reportID, Navigation.getActiveRouteWithoutParams()),
)
}
disabled={didConfirm}
Expand All @@ -880,13 +844,7 @@ function MoneyTemporaryForRefactorRequestConfirmationList({
titleStyle={styles.flex1}
onPress={() =>
Navigation.navigate(
ROUTES.MONEY_REQUEST_STEP_TAX_AMOUNT.getRoute(
CONST.IOU.ACTION.CREATE,
iouType,
transaction?.transactionID ?? '',
reportID,
Navigation.getActiveRouteWithoutParams(),
),
ROUTES.MONEY_REQUEST_STEP_TAX_AMOUNT.getRoute(action, iouType, transaction?.transactionID ?? '', reportID, Navigation.getActiveRouteWithoutParams()),
)
}
disabled={didConfirm}
Expand Down Expand Up @@ -926,12 +884,15 @@ function MoneyTemporaryForRefactorRequestConfirmationList({
isLocalFile,
} = receiptPath && receiptFilename ? ReceiptUtils.getThumbnailAndImageURIs(transaction ?? null, receiptPath, receiptFilename) : ({} as ReceiptUtils.ThumbnailAndImageURI);

const resolvedThumbnail = isLocalFile ? receiptThumbnail : tryResolveUrlFromApiRoot(receiptThumbnail ?? '');
const resolvedReceiptImage = isLocalFile ? receiptImage : tryResolveUrlFromApiRoot(receiptImage ?? '');

const receiptThumbnailContent = useMemo(
() =>
isLocalFile && Str.isPDF(receiptFilename) ? (
<PDFThumbnail
// eslint-disable-next-line @typescript-eslint/non-nullable-type-assertion-style
previewSourceURL={receiptImage as string}
previewSourceURL={resolvedThumbnail as string}
style={styles.moneyRequestImage}
// We don't support scaning password protected PDF receipt
enabled={!isAttachmentInvalid}
Expand All @@ -942,15 +903,15 @@ function MoneyTemporaryForRefactorRequestConfirmationList({
style={styles.moneyRequestImage}
isThumbnail={isThumbnail}
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
source={receiptThumbnail || receiptImage || ''}
source={resolvedThumbnail || resolvedReceiptImage || ''}
// AuthToken is required when retrieving the image from the server
// but we don't need it to load the blob:// or file:// image when starting a money request / split bill
// So if we have a thumbnail, it means we're retrieving the image from the server
isAuthTokenRequired={!!receiptThumbnail}
fileExtension={fileExtension}
/>
),
[isLocalFile, receiptFilename, receiptImage, styles.moneyRequestImage, isAttachmentInvalid, isThumbnail, receiptThumbnail, fileExtension],
[isLocalFile, receiptFilename, resolvedThumbnail, styles.moneyRequestImage, isAttachmentInvalid, isThumbnail, resolvedReceiptImage, receiptThumbnail, fileExtension],
);

return (
Expand Down Expand Up @@ -978,9 +939,9 @@ function MoneyTemporaryForRefactorRequestConfirmationList({
<ConfirmedRoute transaction={transaction ?? ({} as OnyxTypes.Transaction)} />
</View>
)}
{
{(!isMovingTransactionFromTrackExpense || !hasRoute) &&
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just use !isDistanceRequest here instead.

// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
receiptImage || receiptThumbnail
(receiptImage || receiptThumbnail
? receiptThumbnailContent
: // The empty receipt component should only show for IOU Requests of a paid policy ("Team" or "Corporate")
PolicyUtils.isPaidGroupPolicy(policy) &&
Expand All @@ -999,8 +960,7 @@ function MoneyTemporaryForRefactorRequestConfirmationList({
)
}
/>
)
}
))}
{primaryFields}
{!shouldShowAllFields && (
<View style={[styles.flexRow, styles.justifyContentBetween, styles.mh3, styles.alignItemsCenter, styles.mb2, styles.mt1]}>
Expand Down
8 changes: 5 additions & 3 deletions src/components/ReportActionItem/ActionableItemButtons.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,25 +10,27 @@ type ActionableItem = {
key: string;
onPress: () => void;
text: TranslationPaths;
isMediumSized?: boolean;
};

type ActionableItemButtonsProps = {
items: ActionableItem[];
layout?: 'horizontal' | 'vertical';
};

function ActionableItemButtons(props: ActionableItemButtonsProps) {
const styles = useThemeStyles();
const {translate} = useLocalize();

return (
<View style={[styles.flexRow, styles.gap2]}>
<View style={[props.layout === 'horizontal' ? styles.flexRow : [styles.flexColumn, styles.alignItemsStart], styles.gap2, styles.mt2]}>
{props.items?.map((item) => (
<Button
key={item.key}
style={[styles.mt2]}
onPress={item.onPress}
text={translate(item.text)}
small
small={!item.isMediumSized}
medium={item.isMediumSized}
success={item.isPrimary}
/>
))}
Expand Down
Loading
Loading