From 21e3ec0ad48fc8a99f30c75c27fc809be6a5f1bf Mon Sep 17 00:00:00 2001 From: tienifr Date: Tue, 6 Feb 2024 23:51:15 +0700 Subject: [PATCH 1/7] fix: app crashes when changing from auditor to employee --- src/pages/home/ReportScreen.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pages/home/ReportScreen.js b/src/pages/home/ReportScreen.js index bfe27910c94..2e2d7251de6 100644 --- a/src/pages/home/ReportScreen.js +++ b/src/pages/home/ReportScreen.js @@ -418,7 +418,7 @@ function ReportScreen({ !onyxReportID && prevReport.statusNum === CONST.REPORT.STATUS_NUM.OPEN && (report.statusNum === CONST.REPORT.STATUS_NUM.CLOSED || (!report.statusNum && !prevReport.parentReportID && prevReport.chatType === CONST.REPORT.CHAT_TYPE.POLICY_ROOM))) || - ((ReportUtils.isMoneyRequest(prevReport) || ReportUtils.isMoneyRequestReport(prevReport)) && _.isEmpty(report)) + ((ReportUtils.isMoneyRequest(prevReport) || ReportUtils.isMoneyRequestReport(prevReport) || ReportUtils.isPolicyExpenseChat(prevReport)) && _.isEmpty(report)) ) { Navigation.dismissModal(); if (Navigation.getTopmostReportId() === prevOnyxReportID) { @@ -643,7 +643,7 @@ export default compose( key: ({report}) => `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${report ? report.parentReportID : 0}`, selector: (parentReportActions, props) => { const parentReportActionID = lodashGet(props, 'report.parentReportActionID'); - if (!parentReportActionID) { + if (!parentReportActionID || !parentReportActions) { return {}; } return lodashGet(parentReportActions, parentReportActionID); From a78c3f8f66403c475c9468cdeafc460352f174ad Mon Sep 17 00:00:00 2001 From: tienifr Date: Sat, 24 Feb 2024 13:51:28 +0700 Subject: [PATCH 2/7] remove redundant change --- src/pages/home/ReportScreen.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/home/ReportScreen.js b/src/pages/home/ReportScreen.js index 7f923b20864..fe5ed9bb115 100644 --- a/src/pages/home/ReportScreen.js +++ b/src/pages/home/ReportScreen.js @@ -648,7 +648,7 @@ export default compose( key: ({report}) => `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${report ? report.parentReportID : 0}`, selector: (parentReportActions, props) => { const parentReportActionID = lodashGet(props, 'report.parentReportActionID'); - if (!parentReportActionID || !parentReportActions) { + if (!parentReportActionID) { return {}; } return lodashGet(parentReportActions, parentReportActionID, {}); From 229e1561643f0df80486d414a8f9136cf5584007 Mon Sep 17 00:00:00 2001 From: tienifr Date: Sat, 24 Feb 2024 14:44:40 +0700 Subject: [PATCH 3/7] fix: infinite loading in policy expense chat when changing from auditor to employee --- src/pages/home/ReportScreen.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/pages/home/ReportScreen.js b/src/pages/home/ReportScreen.js index fe5ed9bb115..997989c97aa 100644 --- a/src/pages/home/ReportScreen.js +++ b/src/pages/home/ReportScreen.js @@ -137,6 +137,17 @@ function getReportID(route) { return String(lodashGet(route, 'params.reportID') || 0); } +/** + * Check is the report is deleted. + * We currently use useMemo to memorize every properties of the report + * so we can't check using isEmpty. + * + * @param {Object} report + */ +function isDeletedReport(report) { + return _.every(report, _.isUndefined); +} + function ReportScreen({ betas, route, @@ -421,7 +432,7 @@ function ReportScreen({ !onyxReportID && prevReport.statusNum === CONST.REPORT.STATUS_NUM.OPEN && (report.statusNum === CONST.REPORT.STATUS_NUM.CLOSED || (!report.statusNum && !prevReport.parentReportID && prevReport.chatType === CONST.REPORT.CHAT_TYPE.POLICY_ROOM))) || - ((ReportUtils.isMoneyRequest(prevReport) || ReportUtils.isMoneyRequestReport(prevReport) || ReportUtils.isPolicyExpenseChat(prevReport)) && _.isEmpty(report)) + ((ReportUtils.isMoneyRequest(prevReport) || ReportUtils.isMoneyRequestReport(prevReport) || ReportUtils.isPolicyExpenseChat(prevReport)) && isDeletedReport(report)) ) { Navigation.dismissModal(); if (Navigation.getTopmostReportId() === prevOnyxReportID) { From feeceae1bcbd1d11ef2d8d0f94c1815f8fbcc810 Mon Sep 17 00:00:00 2001 From: tienifr Date: Sat, 24 Feb 2024 15:38:10 +0700 Subject: [PATCH 4/7] fix lint --- src/pages/home/ReportScreen.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/pages/home/ReportScreen.js b/src/pages/home/ReportScreen.js index 997989c97aa..9c3d31fda9e 100644 --- a/src/pages/home/ReportScreen.js +++ b/src/pages/home/ReportScreen.js @@ -143,6 +143,7 @@ function getReportID(route) { * so we can't check using isEmpty. * * @param {Object} report + * @returns {Boolean} */ function isDeletedReport(report) { return _.every(report, _.isUndefined); From f7ec94a46916c897df9c29ff34151db2a4d5f45a Mon Sep 17 00:00:00 2001 From: tienifr Date: Mon, 26 Feb 2024 19:01:09 +0700 Subject: [PATCH 5/7] change function name --- src/pages/home/ReportScreen.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pages/home/ReportScreen.js b/src/pages/home/ReportScreen.js index 9c3d31fda9e..157be9118c6 100644 --- a/src/pages/home/ReportScreen.js +++ b/src/pages/home/ReportScreen.js @@ -145,7 +145,7 @@ function getReportID(route) { * @param {Object} report * @returns {Boolean} */ -function isDeletedReport(report) { +function isEmpty(report) { return _.every(report, _.isUndefined); } @@ -433,7 +433,7 @@ function ReportScreen({ !onyxReportID && prevReport.statusNum === CONST.REPORT.STATUS_NUM.OPEN && (report.statusNum === CONST.REPORT.STATUS_NUM.CLOSED || (!report.statusNum && !prevReport.parentReportID && prevReport.chatType === CONST.REPORT.CHAT_TYPE.POLICY_ROOM))) || - ((ReportUtils.isMoneyRequest(prevReport) || ReportUtils.isMoneyRequestReport(prevReport) || ReportUtils.isPolicyExpenseChat(prevReport)) && isDeletedReport(report)) + ((ReportUtils.isMoneyRequest(prevReport) || ReportUtils.isMoneyRequestReport(prevReport) || ReportUtils.isPolicyExpenseChat(prevReport)) && isEmpty(report)) ) { Navigation.dismissModal(); if (Navigation.getTopmostReportId() === prevOnyxReportID) { From 884b3edc4cd8ffae139e95684a5c5e76420ae399 Mon Sep 17 00:00:00 2001 From: tienifr Date: Wed, 13 Mar 2024 12:21:29 +0700 Subject: [PATCH 6/7] modify isEmpty logic --- src/pages/home/ReportScreen.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/pages/home/ReportScreen.tsx b/src/pages/home/ReportScreen.tsx index 6c79e9004c5..12c3f04cf04 100644 --- a/src/pages/home/ReportScreen.tsx +++ b/src/pages/home/ReportScreen.tsx @@ -109,7 +109,8 @@ function isEmpty(report: OnyxTypes.Report): boolean { if (isEmptyObject(report)) { return true; } - return !Object.values(report).some((value) => value !== undefined); + console.log(report) + return !Object.values(report).some((value) => value !== undefined && value !== ''); } function ReportScreen({ From 20b108be51dc56b2bdc2f3856342f2d0e1ce51c9 Mon Sep 17 00:00:00 2001 From: tienifr Date: Wed, 13 Mar 2024 12:27:28 +0700 Subject: [PATCH 7/7] fix lint --- src/pages/home/ReportScreen.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/src/pages/home/ReportScreen.tsx b/src/pages/home/ReportScreen.tsx index 12c3f04cf04..5437e0291b8 100644 --- a/src/pages/home/ReportScreen.tsx +++ b/src/pages/home/ReportScreen.tsx @@ -109,7 +109,6 @@ function isEmpty(report: OnyxTypes.Report): boolean { if (isEmptyObject(report)) { return true; } - console.log(report) return !Object.values(report).some((value) => value !== undefined && value !== ''); }