Skip to content

Commit

Permalink
Merge pull request #45642 from Expensify/rodrigo-fix-csv-reportaction
Browse files Browse the repository at this point in the history
Fix adding exported report action when downloading CSV
  • Loading branch information
luacmartins authored Jul 17, 2024
2 parents 7bb89e1 + 3784eae commit d739580
Showing 1 changed file with 14 additions and 10 deletions.
24 changes: 14 additions & 10 deletions src/components/Search/SearchListWithHeader.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -52,12 +52,23 @@ function SearchListWithHeader(
const [isModalVisible, setIsModalVisible] = useState(false);
const [longPressedItem, setLongPressedItem] = useState<TransactionListItemType | ReportListItemType | null>(null);
const [selectedTransactions, setSelectedTransactions] = useState<SelectedTransactions>({});
const [selectedReports, setSelectedReports] = useState<Array<SearchReport['reportID']>>([]);
const [selectedTransactionsToDelete, setSelectedTransactionsToDelete] = useState<string[]>([]);
const [deleteExpensesConfirmModalVisible, setDeleteExpensesConfirmModalVisible] = useState(false);
const [offlineModalVisible, setOfflineModalVisible] = useState(false);
const [downloadErrorModalVisible, setDownloadErrorModalVisible] = useState(false);

const selectedReports: Array<SearchReport['reportID']> = useMemo(() => {
if (searchType !== CONST.SEARCH.DATA_TYPES.REPORT) {
return [];
}

return data
.filter(
(item) => !SearchUtils.isTransactionListItemType(item) && item.reportID && item.transactions.every((transaction) => selectedTransactions[transaction.keyForList]?.isSelected),
)
.map((item) => item.reportID);
}, [selectedTransactions, data, searchType]);

const handleOnSelectDeleteOption = (itemsToDelete: string[]) => {
setSelectedTransactionsToDelete(itemsToDelete);
setDeleteExpensesConfirmModalVisible(true);
Expand All @@ -68,10 +79,7 @@ function SearchListWithHeader(
setDeleteExpensesConfirmModalVisible(false);
};

const clearSelectedItems = () => {
setSelectedTransactions({});
setSelectedReports([]);
};
const clearSelectedItems = () => setSelectedTransactions({});

const handleDeleteExpenses = () => {
if (selectedTransactionsToDelete.length === 0) {
Expand Down Expand Up @@ -107,7 +115,6 @@ function SearchListWithHeader(

if (item.transactions.every((transaction) => selectedTransactions[transaction.keyForList]?.isSelected)) {
const reducedSelectedTransactions: SelectedTransactions = {...selectedTransactions};
setSelectedReports((prevReports) => prevReports.filter((reportID) => reportID !== item.reportID));

item.transactions.forEach((transaction) => {
delete reducedSelectedTransactions[transaction.keyForList];
Expand All @@ -117,15 +124,12 @@ function SearchListWithHeader(
return;
}

if (item.reportID) {
setSelectedReports([...selectedReports, item.reportID]);
}
setSelectedTransactions({
...selectedTransactions,
...Object.fromEntries(item.transactions.map(mapTransactionItemToSelectedEntry)),
});
},
[selectedTransactions, selectedReports],
[selectedTransactions],
);

const openBottomModal = (item: TransactionListItemType | ReportListItemType | null) => {
Expand Down

0 comments on commit d739580

Please sign in to comment.