UI - МЕЖПРОЕКТНАЯ КОММУНИКАЦИЯ: поиск из лупы, маршрутизация и статусные dropdown

This commit is contained in:
DCCONSTRUCTIONS
2026-04-19 21:38:11 +03:00
parent 21581373cd
commit 16f1552b22
8 changed files with 279 additions and 289 deletions
@@ -7,7 +7,6 @@
import type { ReactNode } from "react";
import { observer } from "mobx-react";
import { useTranslation } from "@plane/i18n";
import { Badge } from "@plane/propel/badge";
import type { TExternalContourRequest } from "@plane/types";
import { Avatar } from "@plane/ui";
import { renderFormattedDate } from "@plane/utils";
@@ -54,7 +53,7 @@ export const ExternalContoursRequestTraceability = observer(function ExternalCon
</TraceabilityCell>
<TraceabilityCell label={t("external_contours_page.traceability.target_contour")}>
<Badge variant="neutral">{targetProjectName}</Badge>
{targetProjectName}
</TraceabilityCell>
<TraceabilityCell label={t("external_contours_page.traceability.status")}>
@@ -72,7 +71,7 @@ export const ExternalContoursRequestTraceability = observer(function ExternalCon
{assigneeDetails.length > 0 ? (
<div className="flex flex-wrap items-center gap-2">
{assigneeDetails.map((assignee) => (
<div key={assignee.id} className="flex items-center gap-2 rounded-sm border border-strong px-2 py-1">
<div key={assignee.id} className="flex items-center gap-2">
<Avatar src={assignee.avatar_url || ""} name={assignee.display_name || t("common.none")} size="sm" showTooltip />
<span className="text-12 font-medium text-secondary">{assignee.display_name}</span>
</div>
@@ -91,13 +90,13 @@ export const ExternalContoursRequestTraceability = observer(function ExternalCon
{requestedAt ? renderFormattedDate(requestedAt) : t("common.none")}
</TraceabilityCell>
<TraceabilityCell label={t("external_contours_page.traceability.due_date")}>
{dueDate}
</TraceabilityCell>
<TraceabilityCell label={t("external_contours_page.traceability.last_updated")}>
{lastUpdatedAt ? renderFormattedDate(lastUpdatedAt) : t("common.none")}
</TraceabilityCell>
<TraceabilityCell label={t("external_contours_page.traceability.due_date")}>
{dueDate}
</TraceabilityCell>
</div>
</div>
);
@@ -19,7 +19,7 @@ export function ExternalContourStatePill(props: Props) {
const state = request.issue.state_detail;
return (
<div className="inline-flex items-center gap-1 rounded-sm border border-subtle bg-layer-2 px-1.5 py-0.5 text-11 font-medium text-secondary">
<div className="inline-flex items-center gap-1.5 text-13 font-medium text-secondary">
<StateGroupIcon
stateGroup={state?.group ?? "backlog"}
color={state?.color}