mirror of
https://github.com/Syngnat/GoNavi.git
synced 2026-08-15 19:24:23 +08:00
- 将数据同步及各级 SQL 备份统一迁入稳定工作区 - 全局保留任务状态、进度和结构化日志,关闭后可重新接回 - 支持从当前任务及历史记录打开 SQL 恢复工作台 - 锁定运行中配置并禁止后台任务分离到独立窗口
38 lines
1.0 KiB
TypeScript
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;
|