fix(workbench): reuse system reconnect notice
This commit is contained in:
@@ -26,6 +26,7 @@ import {
|
|||||||
MapSourceStatusNotice,
|
MapSourceStatusNotice,
|
||||||
MapToolbar,
|
MapToolbar,
|
||||||
MapZoom,
|
MapZoom,
|
||||||
|
dismissMapNotice,
|
||||||
showMapNotice,
|
showMapNotice,
|
||||||
type MapToolbarItem,
|
type MapToolbarItem,
|
||||||
type MapSourceStatus
|
type MapSourceStatus
|
||||||
@@ -166,6 +167,25 @@ export function MapWorkbenchPage({
|
|||||||
ScheduledConditionRecord[]
|
ScheduledConditionRecord[]
|
||||||
>([]);
|
>([]);
|
||||||
const workbenchSync = useWorkbenchSync(getAccessToken);
|
const workbenchSync = useWorkbenchSync(getAccessToken);
|
||||||
|
const workbenchSyncReconnecting =
|
||||||
|
workbenchSync.status === "reconnecting" && workbenchSync.snapshot !== null;
|
||||||
|
useEffect(() => {
|
||||||
|
const noticeId = "workbench-sync-reconnecting";
|
||||||
|
if (!workbenchSyncReconnecting) {
|
||||||
|
dismissMapNotice(noticeId);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
showMapNotice({
|
||||||
|
id: noticeId,
|
||||||
|
tone: "warning",
|
||||||
|
title: "业务同步正在重连",
|
||||||
|
message: "当前数据可能陈旧,连接恢复后将自动更新。",
|
||||||
|
duration: Infinity
|
||||||
|
});
|
||||||
|
|
||||||
|
return () => dismissMapNotice(noticeId);
|
||||||
|
}, [workbenchSyncReconnecting]);
|
||||||
const {
|
const {
|
||||||
headerDataTime,
|
headerDataTime,
|
||||||
scheduledConditions: runtimeScheduledConditions,
|
scheduledConditions: runtimeScheduledConditions,
|
||||||
@@ -1166,15 +1186,6 @@ export function MapWorkbenchPage({
|
|||||||
onLogout={onLogout}
|
onLogout={onLogout}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
{workbenchSync.status === "reconnecting" && workbenchSync.snapshot ? (
|
|
||||||
<div
|
|
||||||
role="status"
|
|
||||||
className="absolute left-1/2 top-[3.7rem] z-[70] -translate-x-1/2 rounded-md border border-amber-300/70 bg-amber-50/95 px-3 py-1.5 text-xs font-medium text-amber-900 shadow-xs backdrop-blur"
|
|
||||||
>
|
|
||||||
正在重连,业务数据可能陈旧
|
|
||||||
</div>
|
|
||||||
) : null}
|
|
||||||
|
|
||||||
{analysisResultsPanelOpen || peripheralSamplePanelOpen ? (
|
{analysisResultsPanelOpen || peripheralSamplePanelOpen ? (
|
||||||
<div
|
<div
|
||||||
aria-hidden="true"
|
aria-hidden="true"
|
||||||
|
|||||||
@@ -264,6 +264,17 @@ test("审批动作展示中文参数和证据,viewer 不可审批,冲突后
|
|||||||
};
|
};
|
||||||
|
|
||||||
await page.goto("/");
|
await page.goto("/");
|
||||||
|
const reconnectNotice = page.locator("[data-sonner-toast]").filter({
|
||||||
|
hasText: "业务同步正在重连"
|
||||||
|
});
|
||||||
|
await expect(reconnectNotice).toBeVisible();
|
||||||
|
await expect(reconnectNotice).toContainText("当前数据可能陈旧,连接恢复后将自动更新。");
|
||||||
|
await expect(page.getByText("正在重连,业务数据可能陈旧", { exact: true })).toHaveCount(0);
|
||||||
|
await page.evaluate(() => document.fonts.ready);
|
||||||
|
await testInfo.attach("workbench-reconnect-notice", {
|
||||||
|
body: await reconnectNotice.screenshot({ path: testInfo.outputPath("workbench-reconnect-notice.png") }),
|
||||||
|
contentType: "image/png"
|
||||||
|
});
|
||||||
let conditionPanel = await openTask();
|
let conditionPanel = await openTask();
|
||||||
await expect(conditionPanel.getByRole("navigation", { name: "工况任务分类" })).toBeVisible();
|
await expect(conditionPanel.getByRole("navigation", { name: "工况任务分类" })).toBeVisible();
|
||||||
await expect(conditionPanel.getByRole("button", { name: /定时任务/ })).toContainText("模拟数据");
|
await expect(conditionPanel.getByRole("button", { name: /定时任务/ })).toContainText("模拟数据");
|
||||||
|
|||||||
Reference in New Issue
Block a user