refactor(workbench): remove redundant notification state
This commit is contained in:
@@ -107,10 +107,15 @@ import type {
|
||||
WorkbenchUser
|
||||
} from "./types";
|
||||
import { getScheduledConditionIdFromAlertId } from "./utils/scheduled-condition-alerts";
|
||||
import { getOperationalNotificationRoute } from "./utils/operational-notification-routing";
|
||||
import { getOperationalNotificationSeverity } from "./utils/operational-notification-routing";
|
||||
import { createAlertQueueConversationPrompt } from "./utils/scheduled-condition-prompts";
|
||||
|
||||
const WORKBENCH_LAYOUT_CSS_VARIABLES = getWorkbenchLayoutCssVariables();
|
||||
const ALERT_TIME_FORMATTER = new Intl.DateTimeFormat("zh-CN", {
|
||||
hour: "2-digit",
|
||||
minute: "2-digit",
|
||||
hour12: false
|
||||
});
|
||||
|
||||
export function MapWorkbenchPage({
|
||||
user = WORKBENCH_USER,
|
||||
@@ -212,28 +217,26 @@ export function MapWorkbenchPage({
|
||||
});
|
||||
const scheduledConditions = useMemo(() => [
|
||||
...runtimeScheduledConditions,
|
||||
...(operationalTasks.available
|
||||
? operationalTasks.conditions.filter((condition) =>
|
||||
condition.operationalTask?.task_type === "event_investigation"
|
||||
|| condition.operationalTask?.task_type === "external_work_order"
|
||||
)
|
||||
: [])
|
||||
], [operationalTasks.available, operationalTasks.conditions, runtimeScheduledConditions]);
|
||||
...operationalTasks.conditions.filter((condition) =>
|
||||
condition.operationalTask?.task_type === "event_investigation"
|
||||
|| condition.operationalTask?.task_type === "external_work_order"
|
||||
)
|
||||
], [operationalTasks.conditions, runtimeScheduledConditions]);
|
||||
const workbenchAlerts = useMemo<WorkbenchAlert[]>(() => {
|
||||
const taskNotifications = operationalTasks.notifications.flatMap((notification) => {
|
||||
const route = getOperationalNotificationRoute(notification.kind);
|
||||
return route ? [{
|
||||
const severity = getOperationalNotificationSeverity(notification.kind);
|
||||
return severity ? [{
|
||||
id: `operational-task-notification:${notification.notification_id}`,
|
||||
conditionId: operationalTaskConditionId(notification.task_id),
|
||||
title: notification.title,
|
||||
description: notification.description,
|
||||
severity: route.severity,
|
||||
severity,
|
||||
occurredAt: notification.created_at,
|
||||
time: new Intl.DateTimeFormat("zh-CN", { hour: "2-digit", minute: "2-digit", hour12: false }).format(new Date(notification.created_at))
|
||||
time: ALERT_TIME_FORMATTER.format(new Date(notification.created_at))
|
||||
}] : [];
|
||||
});
|
||||
return operationalTasks.available ? [...taskNotifications, ...runtimeWorkbenchAlerts] : runtimeWorkbenchAlerts;
|
||||
}, [operationalTasks.available, operationalTasks.notifications, runtimeWorkbenchAlerts]);
|
||||
return [...taskNotifications, ...runtimeWorkbenchAlerts];
|
||||
}, [operationalTasks.notifications, runtimeWorkbenchAlerts]);
|
||||
const collapseAgentPanel = agent.collapsePanel;
|
||||
const expandAgentPanel = agent.expandPanel;
|
||||
const clearActiveTool = useCallback(() => {
|
||||
|
||||
Reference in New Issue
Block a user