Skip to content

Commit

Permalink
Fix linked message visibility in offline mode
Browse files Browse the repository at this point in the history
  • Loading branch information
narefyev91 committed May 20, 2024
1 parent e8ae3c5 commit b325bb0
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 1 deletion.
8 changes: 8 additions & 0 deletions src/libs/actions/Report.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3574,6 +3574,13 @@ function updateLastVisitTime(reportID: string) {
Onyx.merge(`${ONYXKEYS.COLLECTION.REPORT_METADATA}${reportID}`, {lastVisitTime: DateUtils.getDBTime()});
}

function updateLoadingInitialReportAction(reportID: string) {
if (!ReportUtils.isValidReportIDFromPath(reportID)) {
return;
}
Onyx.merge(`${ONYXKEYS.COLLECTION.REPORT_METADATA}${reportID}`, {isLoadingInitialReportActions: false});
}

function clearNewRoomFormError() {
Onyx.set(ONYXKEYS.FORMS.NEW_ROOM_FORM, {
isLoading: false,
Expand Down Expand Up @@ -3814,5 +3821,6 @@ export {
leaveGroupChat,
removeFromGroupChat,
updateGroupChatMemberRoles,
updateLoadingInitialReportAction,
clearAvatarErrors,
};
10 changes: 9 additions & 1 deletion src/pages/home/report/ReportActionsView.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ function ReportActionsView({
const didLayout = useRef(false);
const didLoadOlderChats = useRef(false);
const didLoadNewerChats = useRef(false);
const {isOffline} = useNetwork();

// triggerListID is used when navigating to a chat with messages loaded from LHN. Typically, these include thread actions, task actions, etc. Since these messages aren't the latest,we don't maintain their position and instead trigger a recalculation of their positioning in the list.
// we don't set currentReportActionID on initial render as linkedID as it should trigger visibleReportActions after linked message was positioned
Expand All @@ -129,6 +130,14 @@ function ReportActionsView({
Report.openReport(reportID, reportActionID);
};

useEffect(() => {
// When we linked to message - we do not need to wait for initial actions - they already exists
if (!(isNavigatingToLinkedMessage && isOffline)) {
return;
}
Report.updateLoadingInitialReportAction(report.reportID);
}, [isNavigatingToLinkedMessage, isOffline, report.reportID]);

useLayoutEffect(() => {
setCurrentReportActionID('');
}, [route]);
Expand Down Expand Up @@ -372,7 +381,6 @@ function ReportActionsView({
// If there was an error only try again once on initial mount. We should also still load
// more in case we have cached messages.
(!hasMoreCached && didLoadNewerChats.current && hasLoadingNewerReportActionsError) ||
network.isOffline ||
newestReportAction.pendingAction === CONST.RED_BRICK_ROAD_PENDING_ACTION.DELETE)
) {
return;
Expand Down

0 comments on commit b325bb0

Please sign in to comment.