UI - МЕЖПРОЕКТНАЯ КОММУНИКАЦИЯ: новый канон внешних контуров и стандартизация свойств

This commit is contained in:
DCCONSTRUCTIONS
2026-04-20 11:40:20 +03:00
parent 8fed697531
commit b1f980bc7f
14 changed files with 403 additions and 94 deletions
@@ -8,14 +8,13 @@ import { useEffect, useState } from "react";
import { observer } from "mobx-react";
import { PanelLeft } from "lucide-react";
import { useTranslation } from "@plane/i18n";
import { EmptyStateCompact } from "@plane/propel/empty-state";
import { TransferIcon } from "@plane/propel/icons";
import type { TInboxIssueCurrentTab } from "@plane/types";
import { EInboxIssueCurrentTab } from "@plane/types";
import { cn } from "@plane/utils";
import { InboxLayoutLoader } from "@/components/ui/loader/layouts/project-inbox/inbox-layout-loader";
import { useProjectExternalContours } from "@/hooks/store/use-project-external-contours";
import { ExternalContoursContentRoot } from "./content-root";
import { ExternalContoursEmptyState } from "./empty-state";
import { ExternalContoursSidebar } from "./sidebar";
type TExternalContoursRoot = {
@@ -46,14 +45,6 @@ export const ExternalContoursRoot = observer(function ExternalContoursRoot(props
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [workspaceSlug, projectId, navigationTab]);
if (loader === "init-loading") {
return (
<div className="relative flex h-full w-full flex-col">
<InboxLayoutLoader />
</div>
);
}
if (error && error?.status === "init-error") {
return (
<div className="relative flex h-full w-full flex-col items-center justify-center gap-3">
@@ -99,10 +90,10 @@ export const ExternalContoursRoot = observer(function ExternalContoursRoot(props
) : (
<div className="flex h-full w-full items-center justify-center px-8">
<div className="nodedc-external-section max-w-xl px-8 py-10">
<EmptyStateCompact
assetKey="intake"
<ExternalContoursEmptyState
compact
title={t("external_contours_page.empty_state.detail_title")}
assetClassName="size-20"
description={t("external_contours_page.empty_state.detail_description")}
/>
</div>
</div>