/** * Copyright (c) 2023-present Plane Software, Inc. and contributors * SPDX-License-Identifier: AGPL-3.0-only * See the LICENSE file for details. */ import { useEffect } from "react"; import { observer } from "mobx-react"; import { useTranslation } from "@plane/i18n"; import { EmptyStateDetailed } from "@plane/propel/empty-state"; import type { TInboxIssueCurrentTab } from "@plane/types"; import { EInboxIssueCurrentTab } from "@plane/types"; import { EHeaderVariant, Header } from "@plane/ui"; import { cn } from "@plane/utils"; import { useProjectExternalContours } from "@/hooks/store/use-project-external-contours"; import { useAppRouter } from "@/hooks/use-app-router"; import { ExternalContoursListItem } from "./list-item"; type Props = { workspaceSlug: string; projectId: string; inboxIssueId: string | undefined; setIsMobileSidebar: (value: boolean) => void; }; const tabNavigationOptions: { key: TInboxIssueCurrentTab; i18n_label: string }[] = [ { key: EInboxIssueCurrentTab.OPEN, i18n_label: "external_contours_page.tabs.open" }, { key: EInboxIssueCurrentTab.CLOSED, i18n_label: "external_contours_page.tabs.closed" }, ]; export const ExternalContoursSidebar = observer(function ExternalContoursSidebar(props: Props) { const { workspaceSlug, projectId, inboxIssueId, setIsMobileSidebar } = props; const router = useAppRouter(); const { t } = useTranslation(); const { currentTab, handleCurrentTab, filteredRequestIds, openRequestIds, closedRequestIds } = useProjectExternalContours(); useEffect(() => { if (workspaceSlug && projectId && filteredRequestIds.length > 0 && inboxIssueId === undefined) { router.push( `/${workspaceSlug}/projects/${projectId}/external-contours?currentTab=${currentTab}&inboxIssueId=${filteredRequestIds[0]}` ); } }, [currentTab, filteredRequestIds, inboxIssueId, projectId, router, workspaceSlug]); const currentCount = currentTab === EInboxIssueCurrentTab.CLOSED ? closedRequestIds.length : openRequestIds.length; return (