From 18f363e2de10e79def6bedd9374837587a882b5a Mon Sep 17 00:00:00 2001 From: Anmol Singh Bhatia Date: Fri, 17 Jan 2025 12:16:48 +0530 Subject: [PATCH] fix: draft issue fetch --- web/core/components/issues/workspace-draft/root.tsx | 5 +++-- web/core/store/issue/workspace-draft/issue.store.ts | 6 +++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/web/core/components/issues/workspace-draft/root.tsx b/web/core/components/issues/workspace-draft/root.tsx index 177b8af556c..633fdead729 100644 --- a/web/core/components/issues/workspace-draft/root.tsx +++ b/web/core/components/issues/workspace-draft/root.tsx @@ -34,8 +34,9 @@ export const WorkspaceDraftIssuesRoot: FC = observer( // fetching issues const { isLoading } = useSWR( - workspaceSlug && issueIds.length <= 0 ? `WORKSPACE_DRAFT_ISSUES_${workspaceSlug}` : null, - workspaceSlug && issueIds.length <= 0 ? async () => await fetchIssues(workspaceSlug, "init-loader") : null + workspaceSlug ? `WORKSPACE_DRAFT_ISSUES_${workspaceSlug}` : null, + workspaceSlug ? async () => await fetchIssues(workspaceSlug, "init-loader") : null, + { revalidateOnFocus: false, revalidateIfStale: false } ); // handle nest issues diff --git a/web/core/store/issue/workspace-draft/issue.store.ts b/web/core/store/issue/workspace-draft/issue.store.ts index e6b0730dbd4..9bae17451eb 100644 --- a/web/core/store/issue/workspace-draft/issue.store.ts +++ b/web/core/store/issue/workspace-draft/issue.store.ts @@ -233,8 +233,12 @@ export class WorkspaceDraftIssues implements IWorkspaceDraftIssues { if (results && results.length > 0) { // adding issueIds const issueIds = results.map((issue) => issue.id); + const existingIssueIds = this.issueMapIds[workspaceSlug] ?? []; + // new issueIds + const newIssueIds = issueIds.filter((issueId) => !existingIssueIds.includes(issueId)); this.addIssue(results); - update(this.issueMapIds, [workspaceSlug], (existingIssueIds = []) => [...issueIds, ...existingIssueIds]); + // issue map update + update(this.issueMapIds, [workspaceSlug], (existingIssueIds = []) => [...newIssueIds, ...existingIssueIds]); this.loader = undefined; } else { this.loader = "empty-state";