import ScrollerModal from '@/components/scroller-modal'; import { useIntl } from '@umijs/max'; import { useEffect, useState } from 'react'; import { VersionListItem } from '../config/types'; import VersionInfo from '../forms/version-info'; interface VersionInfoModalProps { open?: boolean; currentData?: any; onClose?: () => void; } const VersionInfoModal: React.FC = ({ open, currentData, onClose }) => { const intl = useIntl(); const [versionConfigs, setVersionConfigs] = useState([]); useEffect(() => { if (open && currentData) { // add is_built_in field to build_in_version_configs const builtInVersions = currentData.build_in_version_configs || {}; for (const key in builtInVersions) { if (builtInVersions?.hasOwnProperty(key)) { builtInVersions[key].is_built_in = true; } } const versions = { ...builtInVersions, ...currentData.version_configs }; const versionList: VersionListItem[] = Object.entries(versions).map( ([key, value]: [string, any]) => ({ version_no: key, image_name: value.image_name, run_command: value.run_command, is_default: key === currentData.default_version, availableFrameworks: [ ...(value.build_in_frameworks || []), ...(value.custom_framework ? [value.custom_framework] : []) ], is_built_in: value.is_built_in || false }) ); setVersionConfigs(versionList); } }, [open, currentData]); return ( ); }; export default VersionInfoModal;