diff --git a/src/components/Search/SearchListWithHeader.tsx b/src/components/Search/SearchListWithHeader.tsx index 25522d84fbf6a..87a39fdd504b0 100644 --- a/src/components/Search/SearchListWithHeader.tsx +++ b/src/components/Search/SearchListWithHeader.tsx @@ -52,12 +52,23 @@ function SearchListWithHeader( const [isModalVisible, setIsModalVisible] = useState(false); const [longPressedItem, setLongPressedItem] = useState(null); const [selectedTransactions, setSelectedTransactions] = useState({}); - const [selectedReports, setSelectedReports] = useState>([]); const [selectedTransactionsToDelete, setSelectedTransactionsToDelete] = useState([]); const [deleteExpensesConfirmModalVisible, setDeleteExpensesConfirmModalVisible] = useState(false); const [offlineModalVisible, setOfflineModalVisible] = useState(false); const [downloadErrorModalVisible, setDownloadErrorModalVisible] = useState(false); + const selectedReports: Array = 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); @@ -68,10 +79,7 @@ function SearchListWithHeader( setDeleteExpensesConfirmModalVisible(false); }; - const clearSelectedItems = () => { - setSelectedTransactions({}); - setSelectedReports([]); - }; + const clearSelectedItems = () => setSelectedTransactions({}); const handleDeleteExpenses = () => { if (selectedTransactionsToDelete.length === 0) { @@ -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]; @@ -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) => {