Skip to content

Commit 6955846

Browse files
authored
Merge pull request Expensify#65861 from callstack-internal/VickyStash/feature/65262-remove-expense-button
[Multi-Scan] Add Remove button on the confirmation screen to delete the selected draft expense
2 parents 3a7a46c + 9bed510 commit 6955846

14 files changed

Lines changed: 110 additions & 35 deletions

File tree

src/components/MoneyRequestConfirmationList.tsx

Lines changed: 29 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ import type * as OnyxTypes from '@src/types/onyx';
6161
import type {Attendee, Participant} from '@src/types/onyx/IOU';
6262
import type {PaymentMethodType} from '@src/types/onyx/OriginalMessage';
6363
import type {SplitShares} from '@src/types/onyx/Transaction';
64+
import Button from './Button';
6465
import ButtonWithDropdownMenu from './ButtonWithDropdownMenu';
6566
import type {DropdownOption} from './ButtonWithDropdownMenu/types';
6667
import FormHelpMessage from './FormHelpMessage';
@@ -183,6 +184,9 @@ type MoneyRequestConfirmationListProps = {
183184

184185
/** The PDF password callback */
185186
onPDFPassword?: () => void;
187+
188+
/** Show remove expense confirmation modal */
189+
showRemoveExpenseConfirmModal?: () => void;
186190
};
187191

188192
type MoneyRequestConfirmationListItem = Participant | OptionData;
@@ -224,6 +228,7 @@ function MoneyRequestConfirmationList({
224228
isConfirming,
225229
onPDFLoadError,
226230
onPDFPassword,
231+
showRemoveExpenseConfirmModal,
227232
}: MoneyRequestConfirmationListProps) {
228233
const [policyCategoriesReal] = useOnyx(`${ONYXKEYS.COLLECTION.POLICY_CATEGORIES}${policyID}`, {canBeMissing: true});
229234
const [policyTags] = useOnyx(`${ONYXKEYS.COLLECTION.POLICY_TAGS}${policyID}`, {canBeMissing: true});
@@ -1004,16 +1009,26 @@ function MoneyRequestConfirmationList({
10041009
isLoading={isConfirmed || isConfirming}
10051010
/>
10061011
) : (
1007-
<ButtonWithDropdownMenu
1008-
pressOnEnter
1009-
onPress={(event, value) => confirm(value as PaymentMethodType)}
1010-
options={splitOrRequestOptions}
1011-
buttonSize={CONST.DROPDOWN_BUTTON_SIZE.LARGE}
1012-
enterKeyEventListenerPriority={1}
1013-
useKeyboardShortcuts
1014-
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
1015-
isLoading={isConfirmed || isConfirming}
1016-
/>
1012+
<>
1013+
{expensesNumber > 1 && (
1014+
<Button
1015+
large
1016+
text={translate('iou.removeThisExpense')}
1017+
onPress={showRemoveExpenseConfirmModal}
1018+
style={styles.mb3}
1019+
/>
1020+
)}
1021+
<ButtonWithDropdownMenu
1022+
pressOnEnter
1023+
onPress={(event, value) => confirm(value as PaymentMethodType)}
1024+
options={splitOrRequestOptions}
1025+
buttonSize={CONST.DROPDOWN_BUTTON_SIZE.LARGE}
1026+
enterKeyEventListenerPriority={1}
1027+
useKeyboardShortcuts
1028+
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
1029+
isLoading={isConfirmed || isConfirming}
1030+
/>
1031+
</>
10171032
);
10181033

10191034
return (
@@ -1051,6 +1066,10 @@ function MoneyRequestConfirmationList({
10511066
isConfirmed,
10521067
splitOrRequestOptions,
10531068
errorMessage,
1069+
expensesNumber,
1070+
translate,
1071+
showRemoveExpenseConfirmModal,
1072+
styles.mb3,
10541073
styles.ph1,
10551074
styles.mb2,
10561075
styles.productTrainingTooltipWrapper,

src/languages/de.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1041,6 +1041,9 @@ const translations = {
10411041
createExpense: 'Ausgabe erstellen',
10421042
trackDistance: 'Entfernung verfolgen',
10431043
createExpenses: ({expensesNumber}: CreateExpensesParams) => `Erstelle ${expensesNumber} Ausgaben`,
1044+
removeExpense: 'Ausgabe entfernen',
1045+
removeThisExpense: 'Diese Ausgabe entfernen',
1046+
removeExpenseConfirmation: 'Sind Sie sicher, dass Sie diesen Beleg entfernen möchten? Diese Aktion kann nicht rückgängig gemacht werden.',
10441047
addExpense: 'Ausgabe hinzufügen',
10451048
chooseRecipient: 'Empfänger auswählen',
10461049
createExpenseWithAmount: ({amount}: {amount: string}) => `Erstelle ${amount} Ausgabe`,

src/languages/en.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1026,6 +1026,9 @@ const translations = {
10261026
createExpense: 'Create expense',
10271027
trackDistance: 'Track distance',
10281028
createExpenses: ({expensesNumber}: CreateExpensesParams) => `Create ${expensesNumber} expenses`,
1029+
removeExpense: 'Remove expense',
1030+
removeThisExpense: 'Remove this expense',
1031+
removeExpenseConfirmation: 'Are you sure you want to remove this receipt? This action cannot be undone.',
10291032
addExpense: 'Add expense',
10301033
chooseRecipient: 'Choose recipient',
10311034
createExpenseWithAmount: ({amount}: {amount: string}) => `Create ${amount} expense`,

src/languages/es.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1021,6 +1021,9 @@ const translations = {
10211021
createExpense: 'Crear gasto',
10221022
trackDistance: 'Gasto de distancia',
10231023
createExpenses: ({expensesNumber}: CreateExpensesParams) => `Crear ${expensesNumber} gastos`,
1024+
removeExpense: 'Eliminar gasto',
1025+
removeThisExpense: 'Eliminar este gasto',
1026+
removeExpenseConfirmation: '¿Estás seguro de que quieres eliminar este recibo? Esta acción no se puede deshacer.',
10241027
paySomeone: ({name}: PaySomeoneParams = {}) => `Pagar a ${name ?? 'alguien'}`,
10251028
chooseRecipient: 'Elige destinatario',
10261029
createExpenseWithAmount: ({amount}: {amount: string}) => `Crear un gasto de ${amount}`,

src/languages/fr.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1042,6 +1042,9 @@ const translations = {
10421042
createExpense: 'Créer une dépense',
10431043
trackDistance: 'Suivre la distance',
10441044
createExpenses: ({expensesNumber}: CreateExpensesParams) => `Créer ${expensesNumber} dépenses`,
1045+
removeExpense: 'Supprimer une dépense',
1046+
removeThisExpense: 'Supprimer cette dépense',
1047+
removeExpenseConfirmation: 'Êtes-vous sûr de vouloir supprimer ce reçu ? Cette action est irréversible.',
10451048
addExpense: 'Ajouter une dépense',
10461049
chooseRecipient: 'Choisir le destinataire',
10471050
createExpenseWithAmount: ({amount}: {amount: string}) => `Créer une dépense de ${amount}`,

src/languages/it.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1037,6 +1037,9 @@ const translations = {
10371037
createExpense: 'Crea spesa',
10381038
trackDistance: 'Traccia distanza',
10391039
createExpenses: ({expensesNumber}: CreateExpensesParams) => `Crea ${expensesNumber} spese`,
1040+
removeExpense: 'Rimuovi spesa',
1041+
removeThisExpense: 'Rimuovi questa spesa',
1042+
removeExpenseConfirmation: 'Sei sicuro di voler rimuovere questa ricevuta? Questa azione non può essere annullata.',
10401043
addExpense: 'Aggiungi spesa',
10411044
chooseRecipient: 'Scegli destinatario',
10421045
createExpenseWithAmount: ({amount}: {amount: string}) => `Crea ${amount} spesa`,

src/languages/ja.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1040,6 +1040,9 @@ const translations = {
10401040
createExpense: '経費を作成',
10411041
trackDistance: '距離を追跡する',
10421042
createExpenses: ({expensesNumber}: CreateExpensesParams) => `${expensesNumber}件の経費を作成`,
1043+
removeExpense: '経費を削除',
1044+
removeThisExpense: 'この経費を削除',
1045+
removeExpenseConfirmation: 'このレシートを削除しますか?この操作は元に戻せません。',
10431046
addExpense: '経費を追加',
10441047
chooseRecipient: '受取人を選択',
10451048
createExpenseWithAmount: ({amount}: {amount: string}) => `${amount}の経費を作成`,

src/languages/nl.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1038,6 +1038,9 @@ const translations = {
10381038
createExpense: 'Uitgave aanmaken',
10391039
trackDistance: 'Afstand bijhouden',
10401040
createExpenses: ({expensesNumber}: CreateExpensesParams) => `Maak ${expensesNumber} uitgaven aan`,
1041+
removeExpense: 'Uitgave verwijderen',
1042+
removeThisExpense: 'Deze uitgave verwijderen',
1043+
removeExpenseConfirmation: 'Weet je zeker dat je dit bonnetje wilt verwijderen? Deze actie kan niet ongedaan worden gemaakt.',
10411044
addExpense: 'Uitgave toevoegen',
10421045
chooseRecipient: 'Kies ontvanger',
10431046
createExpenseWithAmount: ({amount}: {amount: string}) => `Maak ${amount} uitgave aan`,

src/languages/pl.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1036,6 +1036,9 @@ const translations = {
10361036
createExpense: 'Utwórz wydatek',
10371037
trackDistance: 'Śledź odległość',
10381038
createExpenses: ({expensesNumber}: CreateExpensesParams) => `Utwórz ${expensesNumber} wydatki`,
1039+
removeExpense: 'Usuń wydatek',
1040+
removeThisExpense: 'Usuń ten wydatek',
1041+
removeExpenseConfirmation: 'Czy na pewno chcesz usunąć ten paragon? Tej akcji nie można cofnąć.',
10391042
addExpense: 'Dodaj wydatek',
10401043
chooseRecipient: 'Wybierz odbiorcę',
10411044
createExpenseWithAmount: ({amount}: {amount: string}) => `Utwórz wydatek na kwotę ${amount}`,

src/languages/pt-BR.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1038,6 +1038,9 @@ const translations = {
10381038
createExpense: 'Criar despesa',
10391039
trackDistance: 'Rastrear distância',
10401040
createExpenses: ({expensesNumber}: CreateExpensesParams) => `Criar ${expensesNumber} despesas`,
1041+
removeExpense: 'Remover despesa',
1042+
removeThisExpense: 'Remover esta despesa',
1043+
removeExpenseConfirmation: 'Tem certeza de que deseja remover este recibo? Esta ação não pode ser desfeita.',
10411044
addExpense: 'Adicionar despesa',
10421045
chooseRecipient: 'Escolher destinatário',
10431046
createExpenseWithAmount: ({amount}: {amount: string}) => `Criar despesa de ${amount}`,

0 commit comments

Comments
 (0)