import { ArrowDownOutlined } from '@ant-design/icons';
import { ProFormDependency, ProFormSelect } from '@ant-design/pro-components';
import { Divider, Flex, Tag, Typography } from 'antd';
import { useContext, useEffect, useMemo } from 'react';
import { $t } from '@/utils/i18n';
import { MultiCopyPopupContext } from '../context';
import RuleCheckCard from './RuleCheckCard';
type Step1Props = {
formMapRef: any;
setTargetDataSourceId: (id: string | number | null) => void;
};
const Step1 = ({ formMapRef, setTargetDataSourceId }: Step1Props) => {
const { dataSourceList } = useContext(MultiCopyPopupContext);
const buildOptions = (sourceId?: string | number) => {
const sourceType = dataSourceList.find((item) => item.id === sourceId)
?.sourceType;
return dataSourceList.map((item) => ({
...item,
disabled: item.sourceType !== sourceType,
label: (
{item.sourceName}
MT{item.sourceType}
),
}));
};
const sourceOptions = useMemo(
() => dataSourceList.map((item) => ({
...item,
label: (
{item.sourceName}
MT{item.sourceType}
),
})),
[dataSourceList],
);
useEffect(() => {
if (dataSourceList?.length) {
const sourceItem = dataSourceList[0];
const sourceDataSourceId = sourceItem?.id || '';
const sameTypeItem = dataSourceList.find(
(item) => item.id !== sourceDataSourceId && item.sourceType === sourceItem?.sourceType,
);
const targetDataSourceId = sameTypeItem?.id || sourceDataSourceId;
const curFormRef = formMapRef?.current?.[0]?.current;
if (curFormRef) {
curFormRef?.setFieldsValue({
sourceDataSourceId,
targetDataSourceId,
});
setTargetDataSourceId(targetDataSourceId);
}
}
}, [dataSourceList]);
return (
<>
{({ sourceDataSourceId }) => {
if (!sourceDataSourceId) return null;
return ;
}}
{$t('pages.clones.step1.dividerText')}
{({ sourceDataSourceId }) => {
if (!sourceDataSourceId) return null;
const targetOptions = buildOptions(sourceDataSourceId);
return (
{
setTargetDataSourceId(value || null);
}}
/>
);
}}
>
);
};
export default Step1;