From 7a31f156058928cb23bc241cdcc04598d2a1242c Mon Sep 17 00:00:00 2001 From: gakshita Date: Tue, 30 Jul 2024 16:31:22 +0530 Subject: [PATCH 1/2] fix: expired snooze issues fixed --- .../components/inbox/inbox-issue-status.tsx | 2 +- web/core/store/inbox/project-inbox.store.ts | 19 +++++++++++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/web/core/components/inbox/inbox-issue-status.tsx b/web/core/components/inbox/inbox-issue-status.tsx index 4077ba24cab..f74693f7688 100644 --- a/web/core/components/inbox/inbox-issue-status.tsx +++ b/web/core/components/inbox/inbox-issue-status.tsx @@ -17,9 +17,9 @@ export const InboxIssueStatus: React.FC = observer((props) => { const { inboxIssue, iconSize = 16, showDescription = false } = props; // derived values const inboxIssueStatusDetail = INBOX_STATUS.find((s) => s.status === inboxIssue.status); - if (!inboxIssueStatusDetail) return <>; const isSnoozedDatePassed = inboxIssue.status === 0 && new Date(inboxIssue.snoozed_till ?? "") < new Date(); + if (!inboxIssueStatusDetail || isSnoozedDatePassed) return <>; const description = inboxIssueStatusDetail.description(new Date(inboxIssue.snoozed_till ?? "")); diff --git a/web/core/store/inbox/project-inbox.store.ts b/web/core/store/inbox/project-inbox.store.ts index 9a9668a41e5..40e21e08e93 100644 --- a/web/core/store/inbox/project-inbox.store.ts +++ b/web/core/store/inbox/project-inbox.store.ts @@ -156,8 +156,22 @@ export class ProjectInboxStore implements IProjectInboxStore { ? [EInboxIssueStatus.PENDING, EInboxIssueStatus.SNOOZED] : [EInboxIssueStatus.ACCEPTED, EInboxIssueStatus.DECLINED, EInboxIssueStatus.DUPLICATE]; appliedFilters = appliedFilters.filter((filter) => this.inboxFilters?.status?.includes(filter)); + const currentTime = new Date().getTime(); - return this.inboxIssueIds.filter((id) => appliedFilters.includes(this.inboxIssues[id].status)); + return this.inboxIssueIds.filter((id) => { + if (appliedFilters.length == 2) return true; + if (appliedFilters.includes(EInboxIssueStatus.SNOOZED)) + return ( + this.inboxIssues[id].status === EInboxIssueStatus.SNOOZED && + currentTime < new Date(this.inboxIssues[id].snoozed_till!).getTime() + ); + if (appliedFilters.includes(EInboxIssueStatus.PENDING)) + return ( + appliedFilters.includes(this.inboxIssues[id].status) || + (this.inboxIssues[id].status === EInboxIssueStatus.SNOOZED && + currentTime > new Date(this.inboxIssues[id].snoozed_till!).getTime()) + ); + }); } getIssueInboxByIssueId = computedFn((issueId: string) => this.inboxIssues?.[issueId]); @@ -294,8 +308,9 @@ export class ProjectInboxStore implements IProjectInboxStore { else this.loader = "mutation-loading"; if (loadingType) this.loader = loadingType; + const status = this.inboxFilters.status && uniq([...this.inboxFilters.status, EInboxIssueStatus.SNOOZED]); const queryParams = this.inboxIssueQueryParams( - this.inboxFilters, + { ...this.inboxFilters, status }, this.inboxSorting, this.PER_PAGE_COUNT, `${this.PER_PAGE_COUNT}:0:0` From 55546210e2379fa40e390fcc4a69ecd30518c407 Mon Sep 17 00:00:00 2001 From: gakshita Date: Wed, 31 Jul 2024 12:38:22 +0530 Subject: [PATCH 2/2] fix: refactored --- web/core/store/inbox/project-inbox.store.ts | 30 +++++++++++---------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/web/core/store/inbox/project-inbox.store.ts b/web/core/store/inbox/project-inbox.store.ts index 40e21e08e93..e229fb0c021 100644 --- a/web/core/store/inbox/project-inbox.store.ts +++ b/web/core/store/inbox/project-inbox.store.ts @@ -158,20 +158,22 @@ export class ProjectInboxStore implements IProjectInboxStore { appliedFilters = appliedFilters.filter((filter) => this.inboxFilters?.status?.includes(filter)); const currentTime = new Date().getTime(); - return this.inboxIssueIds.filter((id) => { - if (appliedFilters.length == 2) return true; - if (appliedFilters.includes(EInboxIssueStatus.SNOOZED)) - return ( - this.inboxIssues[id].status === EInboxIssueStatus.SNOOZED && - currentTime < new Date(this.inboxIssues[id].snoozed_till!).getTime() - ); - if (appliedFilters.includes(EInboxIssueStatus.PENDING)) - return ( - appliedFilters.includes(this.inboxIssues[id].status) || - (this.inboxIssues[id].status === EInboxIssueStatus.SNOOZED && - currentTime > new Date(this.inboxIssues[id].snoozed_till!).getTime()) - ); - }); + return this.currentTab === EInboxIssueCurrentTab.OPEN + ? this.inboxIssueIds.filter((id) => { + if (appliedFilters.length == 2) return true; + if (appliedFilters[0] === EInboxIssueStatus.SNOOZED) + return ( + this.inboxIssues[id].status === EInboxIssueStatus.SNOOZED && + currentTime < new Date(this.inboxIssues[id].snoozed_till!).getTime() + ); + if (appliedFilters[0] === EInboxIssueStatus.PENDING) + return ( + appliedFilters.includes(this.inboxIssues[id].status) || + (this.inboxIssues[id].status === EInboxIssueStatus.SNOOZED && + currentTime > new Date(this.inboxIssues[id].snoozed_till!).getTime()) + ); + }) + : this.inboxIssueIds.filter((id) => appliedFilters.includes(this.inboxIssues[id].status)); } getIssueInboxByIssueId = computedFn((issueId: string) => this.inboxIssues?.[issueId]);