@@ -15,7 +15,6 @@ import {
1515 canEditFieldOfMoneyRequest ,
1616 canHoldUnholdReportAction ,
1717 canUserPerformWriteAction as canUserPerformWriteActionReportUtils ,
18- getReportOrDraftReport ,
1918 isArchivedReport ,
2019 isInvoiceReport ,
2120 isMoneyRequestReport as isMoneyRequestReportUtils ,
@@ -59,7 +58,7 @@ function useSelectedTransactionsActions({
5958 beginExportWithTemplate : ( templateName : string , templateType : string , transactionIDList : string [ ] , policyID ?: string ) => void ;
6059} ) {
6160 const { isOffline} = useNetworkWithOfflineStatus ( ) ;
62- const { selectedTransactionIDs, clearSelectedTransactions, selectedTransactions : selectedTransactionsMeta } = useSearchContext ( ) ;
61+ const { selectedTransactionIDs, clearSelectedTransactions} = useSearchContext ( ) ;
6362 const [ allTransactions ] = useOnyx ( ONYXKEYS . COLLECTION . TRANSACTION , { canBeMissing : false } ) ;
6463 const [ outstandingReportsByPolicyID ] = useOnyx ( ONYXKEYS . DERIVED . OUTSTANDING_REPORTS_BY_POLICY_ID , { canBeMissing : true } ) ;
6564 const [ lastVisitedPath ] = useOnyx ( ONYXKEYS . LAST_VISITED_PATH , { canBeMissing : true } ) ;
@@ -70,7 +69,7 @@ function useSelectedTransactionsActions({
7069
7170 const { duplicateTransactions, duplicateTransactionViolations} = useDuplicateTransactionsAndViolations ( selectedTransactionIDs ) ;
7271 const isReportArchived = useReportIsArchived ( report ?. reportID ) ;
73- const selectedTransactionsList = useMemo (
72+ const selectedTransactions = useMemo (
7473 ( ) =>
7574 selectedTransactionIDs . reduce ( ( acc , transactionID ) => {
7675 const transaction = allTransactions ?. [ `${ ONYXKEYS . COLLECTION . TRANSACTION } ${ transactionID } ` ] ;
@@ -81,48 +80,6 @@ function useSelectedTransactionsActions({
8180 } , [ ] as Transaction [ ] ) ,
8281 [ allTransactions , selectedTransactionIDs ] ,
8382 ) ;
84- const hasTransactionsFromMultipleOwners = useMemo ( ( ) => {
85- const knownOwnerIDs = new Set < number > ( ) ;
86- let hasUnknownOwner = false ;
87-
88- for ( const selectedTransactionInfo of Object . values ( selectedTransactionsMeta ?? { } ) ) {
89- const ownerAccountID = selectedTransactionInfo ?. ownerAccountID ;
90- if ( typeof ownerAccountID === 'number' ) {
91- knownOwnerIDs . add ( ownerAccountID ) ;
92- if ( knownOwnerIDs . size > 1 ) {
93- return true ;
94- }
95- } else {
96- hasUnknownOwner = true ;
97- }
98- }
99-
100- for ( const selectedTransaction of selectedTransactionsList ) {
101- const reportID = selectedTransaction ?. reportID ;
102- if ( ! reportID || reportID === CONST . REPORT . UNREPORTED_REPORT_ID ) {
103- hasUnknownOwner = true ;
104- continue ;
105- }
106-
107- const parentReport = getReportOrDraftReport ( reportID ) ;
108- const ownerAccountID = parentReport ?. ownerAccountID ;
109-
110- if ( typeof ownerAccountID === 'number' ) {
111- knownOwnerIDs . add ( ownerAccountID ) ;
112- if ( knownOwnerIDs . size > 1 ) {
113- return true ;
114- }
115- } else {
116- hasUnknownOwner = true ;
117- }
118- }
119-
120- if ( hasUnknownOwner ) {
121- return knownOwnerIDs . size > 0 || selectedTransactionIDs . length > 1 ;
122- }
123-
124- return false ;
125- } , [ selectedTransactionsList , selectedTransactionsMeta , selectedTransactionIDs ] ) ;
12683
12784 const { translate} = useLocalize ( ) ;
12885 const [ isDeleteModalVisible , setIsDeleteModalVisible ] = useState ( false ) ;
@@ -214,10 +171,10 @@ function useSelectedTransactionsActions({
214171 const options = [ ] ;
215172 const isMoneyRequestReport = isMoneyRequestReportUtils ( report ) ;
216173 const isReportReimbursed = report ?. stateNum === CONST . REPORT . STATE_NUM . APPROVED && report ?. statusNum === CONST . REPORT . STATUS_NUM . REIMBURSED ;
217- let canHoldTransactions = selectedTransactionsList . length > 0 && isMoneyRequestReport && ! isReportReimbursed ;
218- let canUnholdTransactions = selectedTransactionsList . length > 0 && isMoneyRequestReport ;
174+ let canHoldTransactions = selectedTransactions . length > 0 && isMoneyRequestReport && ! isReportReimbursed ;
175+ let canUnholdTransactions = selectedTransactions . length > 0 && isMoneyRequestReport ;
219176
220- selectedTransactionsList . forEach ( ( selectedTransaction ) => {
177+ selectedTransactions . forEach ( ( selectedTransaction ) => {
221178 if ( ! canHoldTransactions && ! canUnholdTransactions ) {
222179 return ;
223180 }
@@ -314,7 +271,7 @@ function useSelectedTransactionsActions({
314271 subMenuItems : getExportOptions ( ) ,
315272 } ) ;
316273
317- const canSelectedExpensesBeMoved = selectedTransactionsList . every ( ( transaction ) => {
274+ const canSelectedExpensesBeMoved = selectedTransactions . every ( ( transaction ) => {
318275 if ( ! transaction ) {
319276 return false ;
320277 }
@@ -325,7 +282,7 @@ function useSelectedTransactionsActions({
325282 } ) ;
326283
327284 const canUserPerformWriteAction = canUserPerformWriteActionReportUtils ( report , isReportArchived ) ;
328- if ( canSelectedExpensesBeMoved && canUserPerformWriteAction && ! hasTransactionsFromMultipleOwners ) {
285+ if ( canSelectedExpensesBeMoved && canUserPerformWriteAction ) {
329286 options . push ( {
330287 text : translate ( 'iou.moveExpenses' , { count : selectedTransactionIDs . length } ) ,
331288 icon : Expensicons . DocumentMerge ,
@@ -339,14 +296,14 @@ function useSelectedTransactionsActions({
339296 }
340297
341298 // In phase 1, we only show merge action if report is eligible for merge and only one transaction is selected
342- const canMergeTransaction = selectedTransactionsList . length === 1 && report && isMergeAction ( report , selectedTransactionsList , policy ) ;
299+ const canMergeTransaction = selectedTransactions . length === 1 && report && isMergeAction ( report , selectedTransactions , policy ) ;
343300 if ( canMergeTransaction ) {
344301 options . push ( {
345302 text : translate ( 'common.merge' ) ,
346303 icon : Expensicons . ArrowCollapse ,
347304 value : MERGE ,
348305 onSelected : ( ) => {
349- const targetTransaction = selectedTransactionsList . at ( 0 ) ;
306+ const targetTransaction = selectedTransactions . at ( 0 ) ;
350307
351308 if ( ! report || ! targetTransaction ) {
352309 return ;
@@ -358,7 +315,7 @@ function useSelectedTransactionsActions({
358315 } ) ;
359316 }
360317
361- const canAllSelectedTransactionsBeRemoved = selectedTransactionsList . every ( ( transaction ) => {
318+ const canAllSelectedTransactionsBeRemoved = Object . values ( selectedTransactions ) . every ( ( transaction ) => {
362319 const canRemoveTransaction = canDeleteCardTransactionByLiabilityType ( transaction ) ;
363320 const action = getIOUActionForTransactionID ( reportActions , transaction . transactionID ) ;
364321 const isActionDeleted = isDeletedAction ( action ) ;
@@ -381,7 +338,7 @@ function useSelectedTransactionsActions({
381338 } , [
382339 selectedTransactionIDs ,
383340 report ,
384- selectedTransactionsList ,
341+ selectedTransactions ,
385342 translate ,
386343 isReportArchived ,
387344 policy ,
@@ -399,7 +356,6 @@ function useSelectedTransactionsActions({
399356 lastVisitedPath ,
400357 session ?. accountID ,
401358 showDeleteModal ,
402- hasTransactionsFromMultipleOwners ,
403359 ] ) ;
404360
405361 return {
0 commit comments