/** * Copyright (c) 2023-present Plane Software, Inc. and contributors * SPDX-License-Identifier: AGPL-3.0-only * See the LICENSE file for details. */ import React from "react"; import { observer } from "mobx-react"; // constants // helpers import { INBOX_STATUS } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { cn, findHowManyDaysLeft } from "@plane/utils"; // store import type { IInboxIssueStore } from "@/store/inbox/inbox-issue.store"; import { ICON_PROPERTIES, InboxStatusIcon } from "./inbox-status-icon"; type Props = { inboxIssue: IInboxIssueStore; iconSize?: number; showDescription?: boolean; }; export const InboxIssueStatus = observer(function InboxIssueStatus(props: Props) { const { inboxIssue, iconSize = 16, showDescription = false } = props; //hooks const { t } = useTranslation(); // derived values const inboxIssueStatusDetail = INBOX_STATUS.find((s) => s.status === inboxIssue.status); const isSnoozedDatePassed = inboxIssue.status === 0 && new Date(inboxIssue.snoozed_till ?? "") < new Date(); if (!inboxIssueStatusDetail || isSnoozedDatePassed) return <>>; const description = t(inboxIssueStatusDetail.i18n_description(), { days: findHowManyDaysLeft(new Date(inboxIssue.snoozed_till ?? "")), }); const statusIcon = ICON_PROPERTIES[inboxIssue?.status]; return (