Skip to content

Commit d8c93a1

Browse files
authored
Merge pull request Expensify#65859 from software-mansion-labs/@szymczak/fix-mobile-selection-mode-refactor-blockers
[CP Staging] Fix mobile selection mode bugs
2 parents 98bb0c0 + 3d9d631 commit d8c93a1

2 files changed

Lines changed: 27 additions & 9 deletions

File tree

src/components/Search/SearchContext.tsx

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import {isTransactionCardGroupListItemType, isTransactionListItemType, isTransac
44
import CONST from '@src/CONST';
55
import type ChildrenProps from '@src/types/utils/ChildrenProps';
66
import {isEmptyObject} from '@src/types/utils/EmptyObject';
7-
import type {SearchContext, SearchContextData} from './types';
7+
import type {SearchContext, SearchContextData, SelectedTransactions} from './types';
88

99
const 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>(

src/pages/workspace/tags/WorkspaceTagsPage.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -315,7 +315,7 @@ function WorkspaceTagsPage({route}: WorkspaceTagsPageProps) {
315315
};
316316

317317
const navigateToTagSettings = (tag: TagListItem) => {
318-
if (isSmallScreenWidth && !isMobileSelectionModeEnabled) {
318+
if (isSmallScreenWidth && isMobileSelectionModeEnabled) {
319319
toggleTag(tag);
320320
return;
321321
}

0 commit comments

Comments
 (0)