@@ -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,34 @@ function SearchContextProvider({children}: ChildrenProps) {
137137
138138 const removeTransaction : SearchContext [ 'removeTransaction' ] = useCallback (
139139 ( transactionID ) => {
140- const selectedTransactionIDs = searchContextData . selectedTransactionIDs ;
141- if ( ! transactionID || ! selectedTransactionIDs . length ) {
140+ if ( ! transactionID ) {
142141 return ;
143142 }
144- setSearchContextData ( ( prevState ) => ( {
145- ...prevState ,
146- selectedTransactionIDs : selectedTransactionIDs . filter ( ( ID ) => transactionID !== ID ) ,
147- } ) ) ;
143+ const selectedTransactionIDs = searchContextData . selectedTransactionIDs ;
144+
145+ if ( ! isEmptyObject ( searchContextData . selectedTransactions ) ) {
146+ const newSelectedTransactions = Object . entries ( searchContextData . selectedTransactions ) . reduce ( ( acc , [ key , value ] ) => {
147+ if ( key === transactionID ) {
148+ return acc ;
149+ }
150+ acc [ key ] = value ;
151+ return acc ;
152+ } , { } as SelectedTransactions ) ;
153+
154+ setSearchContextData ( ( prevState ) => ( {
155+ ...prevState ,
156+ selectedTransactions : newSelectedTransactions ,
157+ } ) ) ;
158+ }
159+
160+ if ( selectedTransactionIDs . length > 0 ) {
161+ setSearchContextData ( ( prevState ) => ( {
162+ ...prevState ,
163+ selectedTransactionIDs : selectedTransactionIDs . filter ( ( ID ) => transactionID !== ID ) ,
164+ } ) ) ;
165+ }
148166 } ,
149- [ searchContextData . selectedTransactionIDs ] ,
167+ [ searchContextData . selectedTransactionIDs , searchContextData . selectedTransactions ] ,
150168 ) ;
151169
152170 const searchContext = useMemo < SearchContext > (
0 commit comments