import { BaseSelect } from '@gpustack/core-ui'; import { useIntl } from '@umijs/max'; import { Spin, Typography } from 'antd'; import { useEffect, useState } from 'react'; import { useAddWorkerContext } from './add-worker-context'; import { AddWorkerStepProps, StepNamesMap } from './config'; import { Title } from './constainers'; import StepCollapse from './step-collapse'; const SelectCluster: React.FC = ({ disabled }) => { const { clusterList, clusterLoading, registrationInfo, stepList, summary, onClusterChange, registerField, updateField } = useAddWorkerContext(); const intl = useIntl(); const [clusterId, setClusterId] = useState( summary.get('cluster_id') ); const stepIndex = stepList.indexOf(StepNamesMap.SelectCluster) + 1; const handleOnClusterChange = (value: number, option: any) => { setClusterId(value); onClusterChange?.(value, option); }; useEffect(() => { const unregister = registerField('cluster_id'); return () => { unregister(); }; }, []); useEffect(() => { updateField('cluster_id', registrationInfo.cluster_id); // update cluster name in summary setClusterId(registrationInfo.cluster_id); const selectedCluster = clusterList?.find( (item) => item.value === registrationInfo.cluster_id ); updateField('clusterName', selectedCluster?.label || ''); }, [registrationInfo.cluster_id]); return ( {stepIndex}.{' '} {intl.formatMessage({ id: 'clusters.addworker.selectCluster' })} } > {!clusterLoading && !clusterList?.length && ( {intl.formatMessage({ id: 'clusters.addworker.noClusters' })} )} ); }; export default SelectCluster;