diff --git a/web/components/inbox/sidebar/inbox-list-item.tsx b/web/components/inbox/sidebar/inbox-list-item.tsx index f4fa9498d..a85b7a02e 100644 --- a/web/components/inbox/sidebar/inbox-list-item.tsx +++ b/web/components/inbox/sidebar/inbox-list-item.tsx @@ -65,7 +65,7 @@ export const InboxIssueListItem: FC = observer((props) => { } ${inboxIssueDetail.status !== -2 ? "opacity-60" : ""}`} >
-
+

{getProjectById(issue.project_id)?.identifier}-{issue.sequence_id}

diff --git a/web/store/inbox/inbox_issue.store.ts b/web/store/inbox/inbox_issue.store.ts index d160ed037..2fedb73dc 100644 --- a/web/store/inbox/inbox_issue.store.ts +++ b/web/store/inbox/inbox_issue.store.ts @@ -152,7 +152,7 @@ export class InboxIssue implements IInboxIssue { runInAction(() => { const { ["issue_inbox"]: issueInboxDetail, ...issue } = response; - this.rootStore.inbox.rootStore.issue.issues.addIssue([issue]); + this.rootStore.inbox.rootStore.issue.issues.updateIssue(issue.id, issue); const { ["id"]: omittedId, ...inboxIssue } = issueInboxDetail[0]; set(this.inboxIssueMap, [inboxId, response.id], inboxIssue); }); @@ -186,6 +186,7 @@ export class InboxIssue implements IInboxIssue { this.rootStore.inbox.rootStore.issue.issues.addIssue([issue]); const { ["id"]: omittedId, ...inboxIssue } = issueInboxDetail[0]; set(this.inboxIssueMap, [inboxId, response.id], inboxIssue); + update(this.rootStore.inbox.inbox.inboxMap, [inboxId, "pending_issue_count"], (count: number = 0) => count + 1); }); runInAction(() => { @@ -216,7 +217,7 @@ export class InboxIssue implements IInboxIssue { runInAction(() => { const { ["issue_inbox"]: issueInboxDetail, ...issue } = response; - this.rootStore.inbox.rootStore.issue.issues.addIssue([issue]); + this.rootStore.inbox.rootStore.issue.issues.updateIssue(issue.id, issue); const { ["id"]: omittedId, ...inboxIssue } = issueInboxDetail[0]; set(this.inboxIssueMap, [inboxId, response.id], inboxIssue); }); @@ -242,6 +243,8 @@ export class InboxIssue implements IInboxIssue { runInAction(() => { pull(this.inboxIssues[inboxId], inboxIssueId); delete this.inboxIssueMap[inboxId][inboxIssueId]; + this.rootStore.inbox.rootStore.issue.issues.removeIssue(inboxIssueId); + update(this.rootStore.inbox.inbox.inboxMap, [inboxId, "pending_issue_count"], (count: number = 0) => count - 1); }); await this.rootStore.issue.issueDetail.fetchActivities(workspaceSlug, projectId, inboxIssueId); @@ -267,11 +270,15 @@ export class InboxIssue implements IInboxIssue { data ); + const pendingStatus = -2; runInAction(() => { const { ["issue_inbox"]: issueInboxDetail, ...issue } = response; this.rootStore.inbox.rootStore.issue.issues.addIssue([issue]); const { ["id"]: omittedId, ...inboxIssue } = issueInboxDetail[0]; set(this.inboxIssueMap, [inboxId, response.id], inboxIssue); + update(this.rootStore.inbox.inbox.inboxMap, [inboxId, "pending_issue_count"], (count: number = 0) => + data.status === pendingStatus ? count + 1 : count - 1 + ); }); runInAction(() => {