From f4933f0589c8b6c139ebd4468649d2714382fb01 Mon Sep 17 00:00:00 2001 From: Anmol Singh Bhatia Date: Fri, 28 Mar 2025 17:59:42 +0530 Subject: [PATCH 1/2] chore: work item store optimization and code refactor --- .../issues/sub-issues/issues-list.tsx | 2 +- .../store/issue/issue-details/issue.store.ts | 27 ++++++++++--------- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/web/core/components/issues/sub-issues/issues-list.tsx b/web/core/components/issues/sub-issues/issues-list.tsx index 2dcb1f33d87..9fe1a9ababc 100644 --- a/web/core/components/issues/sub-issues/issues-list.tsx +++ b/web/core/components/issues/sub-issues/issues-list.tsx @@ -40,7 +40,7 @@ export const IssueList: FC = observer((props) => { // hooks const { subIssues: { subIssuesByIssueId }, - } = useIssueDetail(); + } = useIssueDetail(issueServiceType); const subIssueIds = subIssuesByIssueId(parentIssueId); diff --git a/web/core/store/issue/issue-details/issue.store.ts b/web/core/store/issue/issue-details/issue.store.ts index fd3dcedf6cf..7529530abd4 100644 --- a/web/core/store/issue/issue-details/issue.store.ts +++ b/web/core/store/issue/issue-details/issue.store.ts @@ -301,6 +301,9 @@ export class IssueStore implements IIssueStore { const issueIdentifier = `${project_identifier}-${sequence_id}`; const issueId = issue?.id; const projectId = issue?.project_id; + const rootWorkItemDetailStore = issue?.is_epic + ? this.rootIssueDetailStore.rootIssueStore.epicDetail + : this.rootIssueDetailStore.rootIssueStore.issueDetail; if (!issue || !projectId || !issueId) throw new Error("Issue not found"); @@ -318,34 +321,34 @@ export class IssueStore implements IIssueStore { this.rootIssueDetailStore.rootIssueStore.issues.addIssueIdentifier(issueIdentifier, issueId); // add related data - if (issue.issue_reactions) this.rootIssueDetailStore.addReactions(issue.id, issue.issue_reactions); - if (issue.issue_link) this.rootIssueDetailStore.addLinks(issue.id, issue.issue_link); - if (issue.issue_attachments) this.rootIssueDetailStore.addAttachments(issue.id, issue.issue_attachments); - this.rootIssueDetailStore.addSubscription(issue.id, issue.is_subscribed); + if (issue.issue_reactions) rootWorkItemDetailStore.addReactions(issue.id, issue.issue_reactions); + if (issue.issue_link) rootWorkItemDetailStore.addLinks(issue.id, issue.issue_link); + if (issue.issue_attachments) rootWorkItemDetailStore.addAttachments(issue.id, issue.issue_attachments); + rootWorkItemDetailStore.addSubscription(issue.id, issue.is_subscribed); // fetch related data // issue reactions - if (issue.issue_reactions) this.rootIssueDetailStore.addReactions(issueId, issue.issue_reactions); + if (issue.issue_reactions) rootWorkItemDetailStore.addReactions(issueId, issue.issue_reactions); // fetch issue links - if (issue.issue_link) this.rootIssueDetailStore.addLinks(issueId, issue.issue_link); + if (issue.issue_link) rootWorkItemDetailStore.addLinks(issueId, issue.issue_link); // fetch issue attachments - if (issue.issue_attachments) this.rootIssueDetailStore.addAttachments(issueId, issue.issue_attachments); + if (issue.issue_attachments) rootWorkItemDetailStore.addAttachments(issueId, issue.issue_attachments); - this.rootIssueDetailStore.addSubscription(issueId, issue.is_subscribed); + rootWorkItemDetailStore.addSubscription(issueId, issue.is_subscribed); // fetch issue activity - this.rootIssueDetailStore.activity.fetchActivities(workspaceSlug, projectId, issueId); + rootWorkItemDetailStore.activity.fetchActivities(workspaceSlug, projectId, issueId); // fetch issue comments - this.rootIssueDetailStore.comment.fetchComments(workspaceSlug, projectId, issueId); + rootWorkItemDetailStore.comment.fetchComments(workspaceSlug, projectId, issueId); // fetch sub issues - this.rootIssueDetailStore.subIssues.fetchSubIssues(workspaceSlug, projectId, issueId); + rootWorkItemDetailStore.subIssues.fetchSubIssues(workspaceSlug, projectId, issueId); // fetch issue relations - this.rootIssueDetailStore.relation.fetchRelations(workspaceSlug, projectId, issueId); + rootWorkItemDetailStore.relation.fetchRelations(workspaceSlug, projectId, issueId); // fetching states // TODO: check if this function is required From c49eefac6cf95e989dbd1cd3bfbe19febc944d84 Mon Sep 17 00:00:00 2001 From: Anmol Singh Bhatia Date: Fri, 28 Mar 2025 18:29:16 +0530 Subject: [PATCH 2/2] chore: code refactor --- web/core/store/issue/issue-details/issue.store.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web/core/store/issue/issue-details/issue.store.ts b/web/core/store/issue/issue-details/issue.store.ts index 7529530abd4..16fb7b858f4 100644 --- a/web/core/store/issue/issue-details/issue.store.ts +++ b/web/core/store/issue/issue-details/issue.store.ts @@ -318,7 +318,7 @@ export class IssueStore implements IIssueStore { } // add identifiers to map - this.rootIssueDetailStore.rootIssueStore.issues.addIssueIdentifier(issueIdentifier, issueId); + rootWorkItemDetailStore.rootIssueStore.issues.addIssueIdentifier(issueIdentifier, issueId); // add related data if (issue.issue_reactions) rootWorkItemDetailStore.addReactions(issue.id, issue.issue_reactions); @@ -352,7 +352,7 @@ export class IssueStore implements IIssueStore { // fetching states // TODO: check if this function is required - this.rootIssueDetailStore.rootIssueStore.rootStore.state.fetchProjectStates(workspaceSlug, projectId); + rootWorkItemDetailStore.rootIssueStore.rootStore.state.fetchProjectStates(workspaceSlug, projectId); return issue; };