86215b300a
Статусы SUPERSEDED/EXPIRED удалены из модели tgu-service, поэтому чистим их и во фронте, чтобы не описывать несуществующие состояния. - tguTypes: убраны EXPIRED/SUPERSEDED из union TguPlanStatus. - tguStatus: удалены их стили; заодно снят осиротевший фильтр isActivePlanStatus/ACTIVE_PLAN_STATUSES (после удаления чекбокса не нужен). - tguTimelineMapper: EXPIRED убран из PROBLEM_STATUSES. - tgu-planning.css: удалены классы .status-superseded/.status-expired и осиротевший блок .tgu-timeline-controls. - TguPlanningPage: убран тумблер «Показать историю версий» вместе со стейтом showHistory и фильтром timelinePlans — таймлайн рендерит все планы из API напрямую (перестали скрываться AWAITING_LAYIN/REJECTED/LAYIN_FAILED/NOT_ACCEPTED). EXPIRED в requestTypes (статус заявок) — отдельный домен, не тронут.
25 lines
1.1 KiB
TypeScript
25 lines
1.1 KiB
TypeScript
import type { TguPlanStatus } from "../../model/tguTypes";
|
|
import type { TimelineStatusStyle } from "../../model/timelineTypes";
|
|
|
|
export const STATUS_STYLES: TimelineStatusStyle[] = [
|
|
{ status: "ACCEPTED", label: "ACCEPTED", color: "#2f9e44", className: "status-accepted" },
|
|
{ status: "REJECTED", label: "REJECTED", color: "#d64545", className: "status-rejected" },
|
|
{ status: "WAITING_DECISION", label: "WAITING_DECISION", color: "#f0ad2e", className: "status-waiting" },
|
|
{ status: "PLANNED", label: "PLANNED", color: "#8d99a6", className: "status-planned" },
|
|
{ status: "ISSUING", label: "ISSUING", color: "#2f80ed", className: "status-issuing" },
|
|
{ status: "START_AMBIGUOUS", label: "START_AMBIGUOUS", color: "#b42318", className: "status-ambiguous" }
|
|
];
|
|
|
|
const STATUS_BY_NAME = new Map(STATUS_STYLES.map((style) => [style.status, style]));
|
|
|
|
export function statusStyle(status: TguPlanStatus): TimelineStatusStyle {
|
|
return (
|
|
STATUS_BY_NAME.get(status) ?? {
|
|
status,
|
|
label: status || "UNKNOWN",
|
|
color: "#79828d",
|
|
className: "status-unknown"
|
|
}
|
|
);
|
|
}
|