diff --git a/src/pages/home/ReportScreen.tsx b/src/pages/home/ReportScreen.tsx index cdd843f65fb3..574c4d98f1da 100644 --- a/src/pages/home/ReportScreen.tsx +++ b/src/pages/home/ReportScreen.tsx @@ -28,6 +28,7 @@ import useThemeStyles from '@hooks/useThemeStyles'; import useViewportOffsetTop from '@hooks/useViewportOffsetTop'; import useWindowDimensions from '@hooks/useWindowDimensions'; import Timing from '@libs/actions/Timing'; +import Log from '@libs/Log'; import Navigation from '@libs/Navigation/Navigation'; import clearReportNotifications from '@libs/Notification/clearReportNotifications'; import Performance from '@libs/Performance'; @@ -625,6 +626,18 @@ function ReportScreen({ ); } + Log.client( + `[ReportScreen] Debug render state - ${JSON.stringify({ + reportMetadata, + shouldShowReportActionList, + isLoading, + shouldShowSkeleton, + isCurrentReportLoadedFromOnyx, + reportID: report.reportID, + reportIDFromRoute, + })}`, + ); + return ( diff --git a/src/pages/home/report/ReportActionsView.tsx b/src/pages/home/report/ReportActionsView.tsx index fe40d1597ec1..26f796b8bdc4 100755 --- a/src/pages/home/report/ReportActionsView.tsx +++ b/src/pages/home/report/ReportActionsView.tsx @@ -12,6 +12,7 @@ import usePrevious from '@hooks/usePrevious'; import useWindowDimensions from '@hooks/useWindowDimensions'; import DateUtils from '@libs/DateUtils'; import getIsReportFullyVisible from '@libs/getIsReportFullyVisible'; +import Log from '@libs/Log'; import type {CentralPaneNavigatorParamList} from '@libs/Navigation/types'; import * as NumberUtils from '@libs/NumberUtils'; import {generateNewRandomInt} from '@libs/NumberUtils'; @@ -299,6 +300,17 @@ function ReportActionsView({ * displaying. */ const loadOlderChats = useCallback(() => { + Log.info( + `[ReportActionsView] loadOlderChats ${JSON.stringify({ + isOffline: network.isOffline, + isLoadingOlderReportActions, + isLoadingInitialReportActions, + oldestReportActionID: oldestReportAction?.reportActionID, + hasCreatedAction, + isTransactionThread: !isEmptyObject(transactionThreadReport), + })}`, + ); + // Only fetch more if we are neither already fetching (so that we don't initiate duplicate requests) nor offline. if (!!network.isOffline || isLoadingOlderReportActions || isLoadingInitialReportActions) { return; @@ -324,13 +336,25 @@ function ReportActionsView({ }, [network.isOffline, isLoadingOlderReportActions, isLoadingInitialReportActions, oldestReportAction, hasCreatedAction, reportID, reportActionIDMap, transactionThreadReport]); const loadNewerChats = useCallback(() => { - if (isLoadingInitialReportActions || isLoadingOlderReportActions || network.isOffline || newestReportAction.pendingAction === CONST.RED_BRICK_ROAD_PENDING_ACTION.DELETE) { - return; - } // Determines if loading older reports is necessary when the content is smaller than the list // and there are fewer than 23 items, indicating we've reached the oldest message. const isLoadingOlderReportsFirstNeeded = checkIfContentSmallerThanList() && reportActions.length > 23; + Log.info( + `[ReportActionsView] loadNewerChats ${JSON.stringify({ + isOffline: network.isOffline, + isLoadingOlderReportActions, + isLoadingInitialReportActions, + newestReportAction: newestReportAction.pendingAction, + firstReportActionID: newestReportAction?.reportActionID, + isLoadingOlderReportsFirstNeeded, + })}`, + ); + + if (isLoadingInitialReportActions || isLoadingOlderReportActions || network.isOffline || newestReportAction.pendingAction === CONST.RED_BRICK_ROAD_PENDING_ACTION.DELETE) { + return; + } + if ((reportActionID && indexOfLinkedAction > -1 && !isLoadingOlderReportsFirstNeeded) || (!reportActionID && !isLoadingOlderReportsFirstNeeded)) { handleReportActionPagination({firstReportActionID: newestReportAction?.reportActionID}); }