From 0614d4e34066ba4986afc64a6ab181512dc781a1 Mon Sep 17 00:00:00 2001 From: Jakub Szymczak Date: Thu, 10 Jul 2025 15:29:02 +0200 Subject: [PATCH 1/2] fix deploy blockers --- src/components/Search/SearchContext.tsx | 25 ++++++++++++++++--- .../workspace/tags/WorkspaceTagsPage.tsx | 2 +- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/src/components/Search/SearchContext.tsx b/src/components/Search/SearchContext.tsx index 6e0d67e39daa4..55b9e25a23073 100644 --- a/src/components/Search/SearchContext.tsx +++ b/src/components/Search/SearchContext.tsx @@ -4,7 +4,7 @@ import {isTransactionCardGroupListItemType, isTransactionListItemType, isTransac import CONST from '@src/CONST'; import type ChildrenProps from '@src/types/utils/ChildrenProps'; import {isEmptyObject} from '@src/types/utils/EmptyObject'; -import type {SearchContext, SearchContextData} from './types'; +import type {SearchContext, SearchContextData, SelectedTransactions} from './types'; const defaultSearchContextData: SearchContextData = { currentSearchHash: -1, @@ -137,16 +137,35 @@ function SearchContextProvider({children}: ChildrenProps) { const removeTransaction: SearchContext['removeTransaction'] = useCallback( (transactionID) => { + if (!transactionID) { + return; + } const selectedTransactionIDs = searchContextData.selectedTransactionIDs; - if (!transactionID || !selectedTransactionIDs.length) { + + if (selectedTransactionIDs.length === 0) { + const removedTransaction = searchContextData.selectedTransactions[transactionID]; + const newSelectedTransactions = Object.entries(searchContextData.selectedTransactions).reduce((acc, [key, value]) => { + if (key === transactionID) { + return acc; + } + acc[key] = value; + return acc; + }, {} as SelectedTransactions); + const reportIDOwningTransaction = removedTransaction?.reportID; + setSearchContextData((prevState) => ({ + ...prevState, + selectedTransactions: newSelectedTransactions, + selectedReports: prevState.selectedReports.filter((report) => report.reportID !== reportIDOwningTransaction), + })); return; } + setSearchContextData((prevState) => ({ ...prevState, selectedTransactionIDs: selectedTransactionIDs.filter((ID) => transactionID !== ID), })); }, - [searchContextData.selectedTransactionIDs], + [searchContextData.selectedTransactionIDs, searchContextData.selectedTransactions], ); const searchContext = useMemo( diff --git a/src/pages/workspace/tags/WorkspaceTagsPage.tsx b/src/pages/workspace/tags/WorkspaceTagsPage.tsx index 4c72f5ce80972..162b6a189e698 100644 --- a/src/pages/workspace/tags/WorkspaceTagsPage.tsx +++ b/src/pages/workspace/tags/WorkspaceTagsPage.tsx @@ -315,7 +315,7 @@ function WorkspaceTagsPage({route}: WorkspaceTagsPageProps) { }; const navigateToTagSettings = (tag: TagListItem) => { - if (isSmallScreenWidth && !isMobileSelectionModeEnabled) { + if (isSmallScreenWidth && isMobileSelectionModeEnabled) { toggleTag(tag); return; } From 3d9d6312737e9af907261a56592c39309844257d Mon Sep 17 00:00:00 2001 From: Jakub Szymczak Date: Fri, 11 Jul 2025 09:11:32 +0200 Subject: [PATCH 2/2] clean up removeTransaction function --- src/components/Search/SearchContext.tsx | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/components/Search/SearchContext.tsx b/src/components/Search/SearchContext.tsx index 55b9e25a23073..5bf332e2c4bb8 100644 --- a/src/components/Search/SearchContext.tsx +++ b/src/components/Search/SearchContext.tsx @@ -142,8 +142,7 @@ function SearchContextProvider({children}: ChildrenProps) { } const selectedTransactionIDs = searchContextData.selectedTransactionIDs; - if (selectedTransactionIDs.length === 0) { - const removedTransaction = searchContextData.selectedTransactions[transactionID]; + if (!isEmptyObject(searchContextData.selectedTransactions)) { const newSelectedTransactions = Object.entries(searchContextData.selectedTransactions).reduce((acc, [key, value]) => { if (key === transactionID) { return acc; @@ -151,19 +150,19 @@ function SearchContextProvider({children}: ChildrenProps) { acc[key] = value; return acc; }, {} as SelectedTransactions); - const reportIDOwningTransaction = removedTransaction?.reportID; + setSearchContextData((prevState) => ({ ...prevState, selectedTransactions: newSelectedTransactions, - selectedReports: prevState.selectedReports.filter((report) => report.reportID !== reportIDOwningTransaction), })); - return; } - setSearchContextData((prevState) => ({ - ...prevState, - selectedTransactionIDs: selectedTransactionIDs.filter((ID) => transactionID !== ID), - })); + if (selectedTransactionIDs.length > 0) { + setSearchContextData((prevState) => ({ + ...prevState, + selectedTransactionIDs: selectedTransactionIDs.filter((ID) => transactionID !== ID), + })); + } }, [searchContextData.selectedTransactionIDs, searchContextData.selectedTransactions], );