@@ -4,7 +4,7 @@ import {isTransactionCardGroupListItemType, isTransactionListItemType, isTransac
44import CONST from '@src/CONST' ;
55import type ChildrenProps from '@src/types/utils/ChildrenProps' ;
66import { isEmptyObject } from '@src/types/utils/EmptyObject' ;
7- import type { SearchContext , SearchContextData } from './types' ;
7+ import type { SearchContext , SearchContextData , SelectedTransactions } from './types' ;
88
99const defaultSearchContextData : SearchContextData = {
1010 currentSearchHash : - 1 ,
@@ -137,16 +137,35 @@ function SearchContextProvider({children}: ChildrenProps) {
137137
138138 const removeTransaction : SearchContext [ 'removeTransaction' ] = useCallback (
139139 ( transactionID ) => {
140+ if ( ! transactionID ) {
141+ return ;
142+ }
140143 const selectedTransactionIDs = searchContextData . selectedTransactionIDs ;
141- if ( ! transactionID || ! selectedTransactionIDs . length ) {
144+
145+ if ( selectedTransactionIDs . length === 0 ) {
146+ const removedTransaction = searchContextData . selectedTransactions [ transactionID ] ;
147+ const newSelectedTransactions = Object . entries ( searchContextData . selectedTransactions ) . reduce ( ( acc , [ key , value ] ) => {
148+ if ( key === transactionID ) {
149+ return acc ;
150+ }
151+ acc [ key ] = value ;
152+ return acc ;
153+ } , { } as SelectedTransactions ) ;
154+ const reportIDOwningTransaction = removedTransaction ?. reportID ;
155+ setSearchContextData ( ( prevState ) => ( {
156+ ...prevState ,
157+ selectedTransactions : newSelectedTransactions ,
158+ selectedReports : prevState . selectedReports . filter ( ( report ) => report . reportID !== reportIDOwningTransaction ) ,
159+ } ) ) ;
142160 return ;
143161 }
162+
144163 setSearchContextData ( ( prevState ) => ( {
145164 ...prevState ,
146165 selectedTransactionIDs : selectedTransactionIDs . filter ( ( ID ) => transactionID !== ID ) ,
147166 } ) ) ;
148167 } ,
149- [ searchContextData . selectedTransactionIDs ] ,
168+ [ searchContextData . selectedTransactionIDs , searchContextData . selectedTransactions ] ,
150169 ) ;
151170
152171 const searchContext = useMemo < SearchContext > (
0 commit comments