{showHeader ? } onClick={onClose} aria-label="关闭数据详情" /> : null} /> : null}
{row ? <>
@@ -368,7 +411,6 @@ export default function HistoryPage() {
setSelectedRowRef({ scope: dataScope, id: '' });
}, [dataScope]);
const mobileFiltersOpen = mobileLayout && !filtersCollapsed;
- useSideSheetA11y(exportAllowed && exportJobsOpen, '.v2-history-export-sidesheet', 'v2-history-export-jobs', '历史数据导出任务', '关闭历史数据导出任务');
const applyDraft = () => {
const parsed = parseHistoryKeywords(draft.keywords);
@@ -575,21 +617,10 @@ export default function HistoryPage() {
>
{mobileLayout && selectedRow ? : null}
- setExportJobsOpen(false)}
- >
- {exportJobsOpen ? : null}
-
+ {exportAllowed ? setExportJobsOpen(false)}
+ /> : null}
;
}
diff --git a/vehicle-data-platform/apps/web/src/v2/productionEntry.test.ts b/vehicle-data-platform/apps/web/src/v2/productionEntry.test.ts
index 5ae4f9fa..a5424440 100644
--- a/vehicle-data-platform/apps/web/src/v2/productionEntry.test.ts
+++ b/vehicle-data-platform/apps/web/src/v2/productionEntry.test.ts
@@ -149,6 +149,9 @@ describe('V2 production entry', () => {
expect(corePageSources.HistoryPage).toContain(' void;
+ ariaLabel?: string;
+ icon?: ReactNode;
disabled?: boolean;
loading?: boolean;
theme?: 'solid' | 'light' | 'borderless';
@@ -102,6 +104,8 @@ export function WorkspaceSideSheet({
key={action.label}
theme={action.theme ?? 'light'}
type={action.type}
+ aria-label={action.ariaLabel}
+ icon={action.icon}
disabled={action.disabled}
loading={action.loading}
onClick={action.onClick}
@@ -109,6 +113,8 @@ export function WorkspaceSideSheet({
{primaryAction ?