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..e229fb0c021 100644 --- a/web/core/store/inbox/project-inbox.store.ts +++ b/web/core/store/inbox/project-inbox.store.ts @@ -156,8 +156,24 @@ 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.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]); @@ -294,8 +310,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`