From c1be04d7858199b34bc73ee807424510d7e9fa42 Mon Sep 17 00:00:00 2001 From: tienifr Date: Wed, 20 Mar 2024 11:53:13 +0700 Subject: [PATCH 1/8] fix: 404 error on opening thread --- src/pages/home/ReportScreen.tsx | 4 ++++ src/pages/home/report/ReportActionsView.tsx | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/pages/home/ReportScreen.tsx b/src/pages/home/ReportScreen.tsx index 009d55e6d139..8dda87fed897 100644 --- a/src/pages/home/ReportScreen.tsx +++ b/src/pages/home/ReportScreen.tsx @@ -447,6 +447,10 @@ function ReportScreen({ if (!ReportUtils.isValidReportIDFromPath(reportID)) { return; } + // Ensure the optimistic report is created successfully + if (reportID !== report.reportID) { + return; + } // Ensures subscription event succeeds when the report/workspace room is created optimistically. // Check if the optimistic `OpenReport` or `AddWorkspaceRoom` has succeeded by confirming // any `pendingFields.createChat` or `pendingFields.addWorkspaceRoom` fields are set to null. diff --git a/src/pages/home/report/ReportActionsView.tsx b/src/pages/home/report/ReportActionsView.tsx index 3153fd1061ff..11f4c630f08c 100755 --- a/src/pages/home/report/ReportActionsView.tsx +++ b/src/pages/home/report/ReportActionsView.tsx @@ -148,6 +148,10 @@ function ReportActionsView({ }, [isSmallScreenWidth, reportActions, isReportFullyVisible]); useEffect(() => { + // Ensure the optimistic report is created successfully + if (reportID !== report.reportID) { + return; + } // Ensures subscription event succeeds when the report/workspace room is created optimistically. // Check if the optimistic `OpenReport` or `AddWorkspaceRoom` has succeeded by confirming // any `pendingFields.createChat` or `pendingFields.addWorkspaceRoom` fields are set to null. @@ -162,7 +166,7 @@ function ReportActionsView({ interactionTask.cancel(); }; } - }, [report.pendingFields, didSubscribeToReportTypingEvents, reportID]); + }, [report.pendingFields, report.reportID, didSubscribeToReportTypingEvents, reportID]); const oldestReportAction = useMemo(() => reportActions?.at(-1), [reportActions]); From c2f0d16fd334f58a9dc529321e2cab4d2c7ab7f9 Mon Sep 17 00:00:00 2001 From: tienifr Date: Wed, 20 Mar 2024 12:02:08 +0700 Subject: [PATCH 2/8] unsubscribe leaving report channel --- src/pages/home/ReportScreen.tsx | 2 +- src/pages/home/report/ReportActionsView.tsx | 14 +++++++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/pages/home/ReportScreen.tsx b/src/pages/home/ReportScreen.tsx index 8dda87fed897..69dcc85e7896 100644 --- a/src/pages/home/ReportScreen.tsx +++ b/src/pages/home/ReportScreen.tsx @@ -368,7 +368,7 @@ function ReportScreen({ }); return () => { interactionTask.cancel(); - if (!didSubscribeToReportLeavingEvents) { + if (!didSubscribeToReportLeavingEvents.current) { return; } diff --git a/src/pages/home/report/ReportActionsView.tsx b/src/pages/home/report/ReportActionsView.tsx index 11f4c630f08c..3cd151a5a617 100755 --- a/src/pages/home/report/ReportActionsView.tsx +++ b/src/pages/home/report/ReportActionsView.tsx @@ -94,12 +94,16 @@ function ReportActionsView({ const interactionTask = InteractionManager.runAfterInteractions(() => { openReportIfNecessary(); }); - // eslint-disable-next-line @typescript-eslint/no-misused-promises - if (interactionTask) { - return () => { + + return () => { + // eslint-disable-next-line @typescript-eslint/no-misused-promises + if (interactionTask) { interactionTask.cancel(); - }; - } + } + if (didSubscribeToReportTypingEvents.current) { + Report.unsubscribeFromLeavingRoomReportChannel(report.reportID); + } + }; // eslint-disable-next-line react-hooks/exhaustive-deps }, []); From 824755cd761170213b94de8645b43b72939bb8f5 Mon Sep 17 00:00:00 2001 From: tienifr Date: Wed, 20 Mar 2024 12:14:32 +0700 Subject: [PATCH 3/8] Revert "unsubscribe leaving report channel" This reverts commit c2f0d16fd334f58a9dc529321e2cab4d2c7ab7f9. --- src/pages/home/ReportScreen.tsx | 2 +- src/pages/home/report/ReportActionsView.tsx | 14 +++++--------- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/src/pages/home/ReportScreen.tsx b/src/pages/home/ReportScreen.tsx index 69dcc85e7896..8dda87fed897 100644 --- a/src/pages/home/ReportScreen.tsx +++ b/src/pages/home/ReportScreen.tsx @@ -368,7 +368,7 @@ function ReportScreen({ }); return () => { interactionTask.cancel(); - if (!didSubscribeToReportLeavingEvents.current) { + if (!didSubscribeToReportLeavingEvents) { return; } diff --git a/src/pages/home/report/ReportActionsView.tsx b/src/pages/home/report/ReportActionsView.tsx index 3cd151a5a617..11f4c630f08c 100755 --- a/src/pages/home/report/ReportActionsView.tsx +++ b/src/pages/home/report/ReportActionsView.tsx @@ -94,16 +94,12 @@ function ReportActionsView({ const interactionTask = InteractionManager.runAfterInteractions(() => { openReportIfNecessary(); }); - - return () => { - // eslint-disable-next-line @typescript-eslint/no-misused-promises - if (interactionTask) { + // eslint-disable-next-line @typescript-eslint/no-misused-promises + if (interactionTask) { + return () => { interactionTask.cancel(); - } - if (didSubscribeToReportTypingEvents.current) { - Report.unsubscribeFromLeavingRoomReportChannel(report.reportID); - } - }; + }; + } // eslint-disable-next-line react-hooks/exhaustive-deps }, []); From d556cf7b7cab64788657eee785162f7d799d2370 Mon Sep 17 00:00:00 2001 From: tienifr Date: Wed, 20 Mar 2024 12:15:28 +0700 Subject: [PATCH 4/8] use ref current --- src/pages/home/ReportScreen.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/home/ReportScreen.tsx b/src/pages/home/ReportScreen.tsx index 8dda87fed897..69dcc85e7896 100644 --- a/src/pages/home/ReportScreen.tsx +++ b/src/pages/home/ReportScreen.tsx @@ -368,7 +368,7 @@ function ReportScreen({ }); return () => { interactionTask.cancel(); - if (!didSubscribeToReportLeavingEvents) { + if (!didSubscribeToReportLeavingEvents.current) { return; } From f306f4b585b5f73674685309c44add9c3a9d7f36 Mon Sep 17 00:00:00 2001 From: tienifr Date: Wed, 20 Mar 2024 12:17:05 +0700 Subject: [PATCH 5/8] fix typo --- src/pages/home/ReportScreen.tsx | 2 +- src/pages/home/report/ReportActionsView.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pages/home/ReportScreen.tsx b/src/pages/home/ReportScreen.tsx index 69dcc85e7896..d7033eb8eecc 100644 --- a/src/pages/home/ReportScreen.tsx +++ b/src/pages/home/ReportScreen.tsx @@ -447,7 +447,7 @@ function ReportScreen({ if (!ReportUtils.isValidReportIDFromPath(reportID)) { return; } - // Ensure the optimistic report is created successfully + // Ensures the optimistic report is created successfully if (reportID !== report.reportID) { return; } diff --git a/src/pages/home/report/ReportActionsView.tsx b/src/pages/home/report/ReportActionsView.tsx index 11f4c630f08c..c86a1bbf6f73 100755 --- a/src/pages/home/report/ReportActionsView.tsx +++ b/src/pages/home/report/ReportActionsView.tsx @@ -148,7 +148,7 @@ function ReportActionsView({ }, [isSmallScreenWidth, reportActions, isReportFullyVisible]); useEffect(() => { - // Ensure the optimistic report is created successfully + // Ensures the optimistic report is created successfully if (reportID !== report.reportID) { return; } From e70a67980011cfcbd10e3969a85998f5288b3306 Mon Sep 17 00:00:00 2001 From: tienifr Date: Fri, 22 Mar 2024 01:09:45 +0700 Subject: [PATCH 6/8] use reportIDFromRoute --- src/pages/home/ReportScreen.tsx | 2 +- src/pages/home/report/ReportActionsView.tsx | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/pages/home/ReportScreen.tsx b/src/pages/home/ReportScreen.tsx index 4beb575c3e96..6adde9e69d20 100644 --- a/src/pages/home/ReportScreen.tsx +++ b/src/pages/home/ReportScreen.tsx @@ -491,7 +491,7 @@ function ReportScreen({ return; } // Ensures the optimistic report is created successfully - if (reportID !== report.reportID) { + if (reportIDFromRoute !== report.reportID) { return; } // Ensures subscription event succeeds when the report/workspace room is created optimistically. diff --git a/src/pages/home/report/ReportActionsView.tsx b/src/pages/home/report/ReportActionsView.tsx index 893746d64427..1a36b0dd5cae 100755 --- a/src/pages/home/report/ReportActionsView.tsx +++ b/src/pages/home/report/ReportActionsView.tsx @@ -265,7 +265,7 @@ function ReportActionsView({ useEffect(() => { // Ensures the optimistic report is created successfully - if (reportID !== report.reportID) { + if (route?.params?.reportID !== report.reportID) { return; } // Ensures subscription event succeeds when the report/workspace room is created optimistically. @@ -282,7 +282,7 @@ function ReportActionsView({ interactionTask.cancel(); }; } - }, [report.pendingFields, report.reportID, didSubscribeToReportTypingEvents, reportID]); + }, [report.pendingFields, report.reportID, didSubscribeToReportTypingEvents, reportID, route]); const onContentSizeChange = useCallback((w: number, h: number) => { contentListHeight.current = h; From 5d96453a01120ffeaf650d08339a89c4226ae42a Mon Sep 17 00:00:00 2001 From: tienifr Date: Fri, 22 Mar 2024 01:17:51 +0700 Subject: [PATCH 7/8] remove redundant dependency --- src/pages/home/report/ReportActionsView.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/home/report/ReportActionsView.tsx b/src/pages/home/report/ReportActionsView.tsx index 1a36b0dd5cae..3ba56b8babb0 100755 --- a/src/pages/home/report/ReportActionsView.tsx +++ b/src/pages/home/report/ReportActionsView.tsx @@ -282,7 +282,7 @@ function ReportActionsView({ interactionTask.cancel(); }; } - }, [report.pendingFields, report.reportID, didSubscribeToReportTypingEvents, reportID, route]); + }, [report.pendingFields, report.reportID, didSubscribeToReportTypingEvents, route]); const onContentSizeChange = useCallback((w: number, h: number) => { contentListHeight.current = h; From 44133591ee0229a31e34aeb57b0a8dd937b409c9 Mon Sep 17 00:00:00 2001 From: tienifr Date: Fri, 22 Mar 2024 01:21:43 +0700 Subject: [PATCH 8/8] remove redundant dependency --- src/pages/home/report/ReportActionsView.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pages/home/report/ReportActionsView.tsx b/src/pages/home/report/ReportActionsView.tsx index 3ba56b8babb0..68cd069608da 100755 --- a/src/pages/home/report/ReportActionsView.tsx +++ b/src/pages/home/report/ReportActionsView.tsx @@ -265,7 +265,7 @@ function ReportActionsView({ useEffect(() => { // Ensures the optimistic report is created successfully - if (route?.params?.reportID !== report.reportID) { + if (route?.params?.reportID !== reportID) { return; } // Ensures subscription event succeeds when the report/workspace room is created optimistically. @@ -282,7 +282,7 @@ function ReportActionsView({ interactionTask.cancel(); }; } - }, [report.pendingFields, report.reportID, didSubscribeToReportTypingEvents, route]); + }, [report.pendingFields, didSubscribeToReportTypingEvents, route, reportID]); const onContentSizeChange = useCallback((w: number, h: number) => { contentListHeight.current = h;