UI - МЕЖПРОЕКТНАЯ КОММУНИКАЦИЯ: auth screens, error pages и новый канон внешних контуров

This commit is contained in:
DCCONSTRUCTIONS
2026-04-20 10:05:31 +03:00
parent df68c96795
commit c6ace8b9cc
25 changed files with 564 additions and 360 deletions
@@ -9,7 +9,6 @@ import { useEffect, useMemo, useRef } from "react";
import { observer } from "mobx-react";
import type { EditorRefApi } from "@plane/editor";
import { useTranslation } from "@plane/i18n";
import { Badge } from "@plane/propel/badge";
import { TOAST_TYPE, setToast } from "@plane/propel/toast";
import type { TExternalContourRequest, TIssue, TNameDescriptionLoader } from "@plane/types";
import { EFileAssetType } from "@plane/types";
@@ -139,8 +138,8 @@ export const ExternalContoursIssueMainContent = observer(function ExternalContou
if (!hasDirectTargetAccess) {
return (
<>
<div className="space-y-4 pb-4">
<div className="space-y-4">
<div className="nodedc-external-section space-y-4 p-5">
{isSourceEditable ? (
<>
<IssueTitleInput
@@ -190,23 +189,23 @@ export const ExternalContoursIssueMainContent = observer(function ExternalContou
)}
</div>
<div className="py-4">
<ExternalContoursRequestTraceability contourRequest={contourRequest} />
</div>
<ExternalContoursRequestTraceability contourRequest={contourRequest} />
<div className="py-4">
<div className="mb-2 text-body-sm-medium">{t("external_contours_page.properties.section_title")}</div>
<div className="nodedc-external-section flex flex-col gap-3 px-4 py-4">
<div className="text-body-sm-medium">{t("external_contours_page.properties.section_title")}</div>
<div className="flex flex-col gap-3 text-13 text-secondary">
<div className="flex flex-wrap items-center gap-2">
<div className="nodedc-external-panel flex flex-wrap items-center gap-2 px-4 py-3">
<span className="text-tertiary">{t("priority")}</span>
<Badge variant="neutral">{issue.priority || t("none")}</Badge>
<span className="rounded-full bg-white/6 px-3 py-1.5 text-12 font-medium text-primary">
{issue.priority || t("none")}
</span>
</div>
<div className="flex flex-wrap items-center gap-2">
<div className="nodedc-external-panel flex flex-wrap items-center gap-2 px-4 py-3">
<span className="text-tertiary">{t("labels")}</span>
{issue.label_details?.length ? (
issue.label_details.map((label) => (
<div key={label.id} className="flex items-center gap-1 rounded-sm border border-strong px-2 py-1 text-11">
<div key={label.id} className="flex items-center gap-1 rounded-full bg-white/6 px-3 py-1.5 text-11">
<span className="h-2 w-2 rounded-full" style={{ backgroundColor: label.color }} />
<span>{label.name}</span>
</div>
@@ -230,8 +229,12 @@ export const ExternalContoursIssueMainContent = observer(function ExternalContou
<ExternalContoursMirroredActivity activity={mirroredActivity} />
{!isSourceEditable && <div className="py-4 text-13 text-secondary">{t("external_contours_page.readonly_source_view")}</div>}
</>
{!isSourceEditable && (
<div className="nodedc-external-empty px-4 py-4 text-13 text-secondary">
{t("external_contours_page.readonly_source_view")}
</div>
)}
</div>
);
}