Files
MyGoNavi/frontend/src/components/DataSyncWorkbench.tsx
Syngnat 21e0921b3b feat(data-sync/export): 支持同步与备份后台工作台
- 将数据同步及各级 SQL 备份统一迁入稳定工作区
- 全局保留任务状态、进度和结构化日志,关闭后可重新接回
- 支持从当前任务及历史记录打开 SQL 恢复工作台
- 锁定运行中配置并禁止后台任务分离到独立窗口
2026-07-20 13:43:58 +08:00

38 lines
1.0 KiB
TypeScript

import React, { useCallback } from 'react';
import { useStore } from '../store';
import type { TabData } from '../types';
import DataSyncModal from './DataSyncModal';
import type { DataSyncEntryMode } from './dataSyncEntryMode';
const resolveEntryMode = (tab: TabData): DataSyncEntryMode => {
if (tab.dataSyncEntryMode === 'schemaCompare' || tab.dataSyncEntryMode === 'dataCompare') {
return tab.dataSyncEntryMode;
}
return 'sync';
};
const DataSyncWorkbench: React.FC<{ tab: TabData }> = ({ tab }) => {
const closeTab = useStore((state) => state.closeTab);
const handleClose = useCallback(() => {
closeTab(tab.id);
}, [closeTab, tab.id]);
return (
<div
data-data-sync-workbench="true"
style={{ width: '100%', height: '100%', minWidth: 0, minHeight: 0, overflow: 'hidden' }}
>
<DataSyncModal
embedded
open
taskKey={tab.id}
entryMode={resolveEntryMode(tab)}
onClose={handleClose}
/>
</div>
);
};
export default DataSyncWorkbench;