From f5f5726e159011d5d750d7c5e1d0f17edff48330 Mon Sep 17 00:00:00 2001 From: rahulramesha <71900764+rahulramesha@users.noreply.github.com> Date: Thu, 13 Jun 2024 21:15:20 +0530 Subject: [PATCH] fix ee sync error on base issues store (#4812) --- .../store/issue/helpers/base-issues.store.ts | 30 ++++++++++++------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/web/core/store/issue/helpers/base-issues.store.ts b/web/core/store/issue/helpers/base-issues.store.ts index 6f4156623ed..a5d3bbfabf7 100644 --- a/web/core/store/issue/helpers/base-issues.store.ts +++ b/web/core/store/issue/helpers/base-issues.store.ts @@ -1470,10 +1470,12 @@ export abstract class BaseIssuesStore implements IBaseIssuesStore { // if unGrouped, then return the path as ALL_ISSUES along with orderByUpdates if (!this.issueGroupKey) return action ? [{ path: [ALL_ISSUES], action }, ...orderByUpdates] : orderByUpdates; + const issueGroupKey = issue?.[this.issueGroupKey] as string | string[] | null | undefined; + const issueBeforeUpdateGroupKey = issueBeforeUpdate?.[this.issueGroupKey] as string | string[] | null | undefined; // if grouped, the get the Difference between the two issue properties (this.issueGroupKey) on which groupBy is performed const groupActionsArray = getDifference( - this.getArrayStringArray(issue, issue?.[this.issueGroupKey], this.groupBy), - this.getArrayStringArray(issueBeforeUpdate, issueBeforeUpdate?.[this.issueGroupKey], this.groupBy), + this.getArrayStringArray(issue, issueGroupKey, this.groupBy), + this.getArrayStringArray(issueBeforeUpdate, issueBeforeUpdateGroupKey, this.groupBy), action ); @@ -1487,10 +1489,16 @@ export abstract class BaseIssuesStore implements IBaseIssuesStore { ...orderByUpdates, ]; + const issueSubGroupKey = issue?.[this.issueSubGroupKey] as string | string[] | null | undefined; + const issueBeforeUpdateSubGroupKey = issueBeforeUpdate?.[this.issueSubGroupKey] as + | string + | string[] + | null + | undefined; // if subGrouped, the get the Difference between the two issue properties (this.issueGroupKey) on which subGroupBy is performed const subGroupActionsArray = getDifference( - this.getArrayStringArray(issue, issue?.[this.issueSubGroupKey], this.subGroupBy), - this.getArrayStringArray(issueBeforeUpdate, issueBeforeUpdate?.[this.issueSubGroupKey], this.subGroupBy), + this.getArrayStringArray(issue, issueSubGroupKey, this.subGroupBy), + this.getArrayStringArray(issueBeforeUpdate, issueBeforeUpdateSubGroupKey, this.subGroupBy), action ); @@ -1499,10 +1507,10 @@ export abstract class BaseIssuesStore implements IBaseIssuesStore { ...getSubGroupIssueKeyActions( groupActionsArray, subGroupActionsArray, - this.getArrayStringArray(issueBeforeUpdate, issueBeforeUpdate?.[this.issueGroupKey], this.groupBy), - this.getArrayStringArray(issue, issue?.[this.issueGroupKey], this.groupBy), - this.getArrayStringArray(issueBeforeUpdate, issueBeforeUpdate?.[this.issueSubGroupKey], this.subGroupBy), - this.getArrayStringArray(issue, issue?.[this.issueSubGroupKey], this.subGroupBy) + this.getArrayStringArray(issueBeforeUpdate, issueBeforeUpdateGroupKey, this.groupBy), + this.getArrayStringArray(issue, issueGroupKey, this.groupBy), + this.getArrayStringArray(issueBeforeUpdate, issueBeforeUpdateSubGroupKey, this.subGroupBy), + this.getArrayStringArray(issue, issueSubGroupKey, this.subGroupBy) ), ...orderByUpdates, ]; @@ -1530,9 +1538,10 @@ export abstract class BaseIssuesStore implements IBaseIssuesStore { // if they are not equal and issues are not grouped then, provide path as ALL_ISSUES if (!this.issueGroupKey) return [{ path: [ALL_ISSUES], action: EIssueGroupedAction.REORDER }]; + const issueGroupKey = issue?.[this.issueGroupKey] as string | string[] | null | undefined; // if they are grouped then identify the paths based on props on which group by is dependent on const issueKeyActions: { path: string[]; action: EIssueGroupedAction.REORDER }[] = []; - const groupByValues = this.getArrayStringArray(issue, issue[this.issueGroupKey]); + const groupByValues = this.getArrayStringArray(issue, issueGroupKey); // if issues are not subGrouped then, provide path from groupByValues if (!this.issueSubGroupKey) { @@ -1543,8 +1552,9 @@ export abstract class BaseIssuesStore implements IBaseIssuesStore { return issueKeyActions; } + const issueSubGroupKey = issue?.[this.issueSubGroupKey] as string | string[] | null | undefined; // if they are grouped then identify the paths based on props on which sub group by is dependent on - const subGroupByValues = this.getArrayStringArray(issue, issue[this.issueSubGroupKey]); + const subGroupByValues = this.getArrayStringArray(issue, issueSubGroupKey); // if issues are subGrouped then, provide path from subGroupByValues for (const groupKey of groupByValues) {