Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,16 @@ import canUseTouchScreen from '@libs/DeviceCapabilities/canUseTouchScreen';
import {getTransactionPendingAction, isTransactionPendingDelete} from '@libs/TransactionUtils';
import variables from '@styles/variables';
import CONST from '@src/CONST';
import type {Report} from '@src/types/onyx';
import type {TransactionWithOptionalHighlight} from './MoneyRequestReportTransactionList';

type MoneyRequestReportTransactionItemProps = {
/** The transaction that is being displayed */
transaction: TransactionWithOptionalHighlight;

/** Report to which the transaction belongs */
report: Report;

/** Whether the mobile selection mode is enabled */
isSelectionModeEnabled: boolean;

Expand Down Expand Up @@ -57,6 +61,7 @@ type MoneyRequestReportTransactionItemProps = {
function MoneyRequestReportTransactionItem({
transaction,
columns,
report,
isSelectionModeEnabled,
toggleTransaction,
isSelected,
Expand Down Expand Up @@ -119,6 +124,7 @@ function MoneyRequestReportTransactionItem({
>
<TransactionItemRow
transactionItem={transaction}
report={report}
isSelected={isSelected}
dateColumnSize={dateColumnSize}
amountColumnSize={amountColumnSize}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -289,6 +289,7 @@ function MoneyRequestReportTransactionList({
key={transaction.transactionID}
transaction={transaction}
columns={columnsToShow}
report={report}
isSelectionModeEnabled={isMobileSelectionModeEnabled}
toggleTransaction={toggleTransaction}
isSelected={isTransactionSelected(transaction.transactionID)}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -175,6 +175,7 @@ function TransactionGroupListItem<TItem extends ListItem>({
groupItem.transactions.map((transaction) => (
<TransactionItemRow
key={transaction.transactionID}
report={transaction.report}
transactionItem={transaction}
isSelected={!!transaction.isSelected}
dateColumnSize={dateColumnSize}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,7 @@ function TransactionListItem<TItem extends ListItem>({
)}
<TransactionItemRow
transactionItem={transactionItem}
report={transactionItem.report}
shouldShowTooltip={showTooltip}
onButtonPress={handleActionButtonPress}
onCheckboxPress={handleCheckboxPress}
Expand Down
3 changes: 3 additions & 0 deletions src/components/SelectionList/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,9 @@ type ListItem<K extends string | number = string> = {

type TransactionListItemType = ListItem &
SearchTransaction & {
/** Report to which the transaction belongs */
report: Report;

/** The personal details of the user requesting money */
from: SearchPersonalDetails;

Expand Down
70 changes: 0 additions & 70 deletions src/components/TransactionItemRow/TransactionItemRowRBR.tsx

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -6,38 +6,45 @@ import {DotIndicator} from '@components/Icon/Expensicons';
import RenderHTML from '@components/RenderHTML';
import useLocalize from '@hooks/useLocalize';
import useOnyx from '@hooks/useOnyx';
import usePaginatedReportActions from '@hooks/usePaginatedReportActions';
import useTheme from '@hooks/useTheme';
import useThemeStyles from '@hooks/useThemeStyles';
import useTransactionViolations from '@hooks/useTransactionViolations';
import {getIOUActionForTransactionID} from '@libs/ReportActionsUtils';
import ViolationsUtils from '@libs/Violations/ViolationsUtils';
import variables from '@styles/variables';
import ONYXKEYS from '@src/ONYXKEYS';
import type {Report} from '@src/types/onyx';
import type Transaction from '@src/types/onyx/Transaction';

type TransactionItemRowRBRProps = {
/** Transaction item */
transaction: Transaction;

/** Report item */
report?: Report;

/** Styles for the RBR messages container */
containerStyles?: ViewStyle[];

/** Error message for missing required fields in the transaction */
missingFieldError?: string;
};

function TransactionItemRowRBRWithOnyx({transaction, containerStyles, missingFieldError}: TransactionItemRowRBRProps) {
function TransactionItemRowRBRWithOnyx({transaction, report, containerStyles, missingFieldError}: TransactionItemRowRBRProps) {
const styles = useThemeStyles();
const transactionViolations = useTransactionViolations(transaction?.transactionID, false);
const {translate} = useLocalize();
const theme = useTheme();
const {sortedAllReportActions: transactionActions, report} = usePaginatedReportActions(transaction.reportID);
const [reportActions] = useOnyx(`${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${transaction.reportID}`, {
canBeMissing: true,
});
const [policyTags] = useOnyx(`${ONYXKEYS.COLLECTION.POLICY_TAGS}${report?.policyID}`, {canBeMissing: true});
const transactionThreadId = transactionActions ? getIOUActionForTransactionID(transactionActions, transaction.transactionID)?.childReportID : undefined;
const {sortedAllReportActions: transactionThreadActions} = usePaginatedReportActions(transactionThreadId);
const transactionThreadId = reportActions ? getIOUActionForTransactionID(Object.values(reportActions ?? {}), transaction.transactionID)?.childReportID : undefined;
const [transactionThreadActions] = useOnyx(`${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${transactionThreadId}`, {
canBeMissing: true,
});

const RBRMessages = ViolationsUtils.getRBRMessages(transaction, transactionViolations, translate, missingFieldError, transactionThreadActions, policyTags);
const RBRMessages = ViolationsUtils.getRBRMessages(transaction, transactionViolations, translate, missingFieldError, Object.values(transactionThreadActions ?? {}), policyTags);

return (
RBRMessages.length > 0 && (
Expand Down
6 changes: 5 additions & 1 deletion src/components/TransactionItemRow/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ import {
} from '@libs/TransactionUtils';
import CONST from '@src/CONST';
import type {TranslationPaths} from '@src/languages/types';
import type {TransactionViolation} from '@src/types/onyx';
import type {Report, TransactionViolation} from '@src/types/onyx';
import type {SearchPersonalDetails, SearchTransactionAction} from '@src/types/onyx/SearchResults';
import CategoryCell from './DataCells/CategoryCell';
import ChatBubbleCell from './DataCells/ChatBubbleCell';
Expand Down Expand Up @@ -79,6 +79,7 @@ type TransactionWithOptionalSearchFields = TransactionWithOptionalHighlight & {

type TransactionItemRowProps = {
transactionItem: TransactionWithOptionalSearchFields;
report?: Report;
shouldUseNarrowLayout: boolean;
isSelected: boolean;
shouldShowTooltip: boolean;
Expand Down Expand Up @@ -111,6 +112,7 @@ function getMerchantName(transactionItem: TransactionWithOptionalSearchFields, t

function TransactionItemRow({
transactionItem,
report,
shouldUseNarrowLayout,
isSelected,
shouldShowTooltip,
Expand Down Expand Up @@ -443,6 +445,7 @@ function TransactionItemRow({
)}
<TransactionItemRowRBRWithOnyx
transaction={transactionItem}
report={report}
containerStyles={[styles.mt2, styles.minHeight4]}
missingFieldError={missingFieldError}
/>
Expand Down Expand Up @@ -476,6 +479,7 @@ function TransactionItemRow({
</View>
<TransactionItemRowRBRWithOnyx
transaction={transactionItem}
report={report}
missingFieldError={missingFieldError}
/>
</View>
Expand Down
2 changes: 2 additions & 0 deletions src/libs/SearchUIUtils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@
];

let currentAccountID: number | undefined;
Onyx.connect({

Check warning on line 167 in src/libs/SearchUIUtils.ts

View workflow job for this annotation

GitHub Actions / Changed files ESLint check

Onyx.connect() is deprecated. Use useOnyx() hook instead and pass the data as parameters to a pure function
key: ONYXKEYS.SESSION,
callback: (session) => {
currentAccountID = session?.accountID;
Expand Down Expand Up @@ -760,6 +760,7 @@

const transactionSection: TransactionListItemType = {
action: getAction(data, allViolations, key, currentSearch),
report,
from,
to,
formattedFrom,
Expand Down Expand Up @@ -1201,6 +1202,7 @@
const transaction = {
...transactionItem,
action: getAction(data, allViolations, key, currentSearch, actions),
report,
from,
to,
formattedFrom,
Expand Down
Loading
Loading