From 7b5ce83cbd69a8737c35e5ebb73adee33b81fb5d Mon Sep 17 00:00:00 2001 From: jialin Date: Thu, 8 Jan 2026 10:58:51 +0800 Subject: [PATCH] fix: add worker default selection is incorrect --- .../hooks/use-add-worker.tsx | 31 ++++++++++++------- src/pages/resources/components/workers.tsx | 11 ++----- 2 files changed, 23 insertions(+), 19 deletions(-) diff --git a/src/pages/cluster-management/hooks/use-add-worker.tsx b/src/pages/cluster-management/hooks/use-add-worker.tsx index 69d323e9..5b6ac616 100644 --- a/src/pages/cluster-management/hooks/use-add-worker.tsx +++ b/src/pages/cluster-management/hooks/use-add-worker.tsx @@ -29,26 +29,36 @@ const useAddWorker = (props: { cluster_id: null }); - const handleAddWorker = async (row: ClusterListItem) => { + const handleAddWorker = async (row: ClusterListItem, fromWorker = false) => { try { + if (!row?.id) return; + // set the title based on provider type - const title = + let title = row.provider === ProviderValueMap.Docker ? intl.formatMessage({ id: 'resources.button.create' }) : intl.formatMessage({ id: 'clusters.button.register' }); - if (!row?.id) return; + let clusterId: number | null = [ + ProviderValueMap.Docker, + ProviderValueMap.Kubernetes + ].includes(row.provider as string) + ? row.id + : null; + + if (fromWorker) { + title = intl.formatMessage({ id: 'resources.button.create' }); + } + + if (fromWorker && row.provider === ProviderValueMap.Kubernetes) { + clusterId = null; + } setOpenAddWorker({ open: true, title: title, provider: row.provider as ProviderType, - cluster_id: [ - ProviderValueMap.Docker, - ProviderValueMap.Kubernetes - ].includes(row.provider as string) - ? row.id - : null + cluster_id: clusterId }); } catch (error: any) { message.error(error?.message || 'Failed to fetch cluster token'); @@ -83,8 +93,7 @@ const useAddWorker = (props: { * @returns */ const checkDefaultCluster = ( - clusterList: Global.BaseOption[], - includeDigitalOcean?: boolean + clusterList: Global.BaseOption[] ) => { // select default and ready cluster first, digitalocean no READY state let currentData = clusterList.find( diff --git a/src/pages/resources/components/workers.tsx b/src/pages/resources/components/workers.tsx index 4885f3ac..5cc5eedd 100644 --- a/src/pages/resources/components/workers.tsx +++ b/src/pages/resources/components/workers.tsx @@ -5,7 +5,6 @@ import useTableFetch from '@/hooks/use-table-fetch'; import PageBox from '@/pages/_components/page-box'; import { queryClusterList } from '@/pages/cluster-management/apis'; import { DockerStepsFromWorker } from '@/pages/cluster-management/components/add-worker/config'; -import { ProviderValueMap } from '@/pages/cluster-management/config'; import { ClusterListItem } from '@/pages/cluster-management/config/types'; import useAddWorker from '@/pages/cluster-management/hooks/use-add-worker'; import useNoResourceResult from '@/pages/llmodels/hooks/use-no-resource-result'; @@ -192,13 +191,9 @@ const Workers: React.FC = () => { }); const handleOnAddWorker = () => { - if (clusterData.list.length > 0) { - // filter only docker clusters for add worker - const list = clusterData.list.filter( - (item) => item.provider === ProviderValueMap.Docker - ); - const targetCluster = checkDefaultCluster(list); - handleAddWorker(targetCluster as ClusterListItem); + const targetCluster = checkDefaultCluster(clusterData.list); + if (targetCluster) { + handleAddWorker(targetCluster as ClusterListItem, true); } else { message.info(intl.formatMessage({ id: 'noresult.resources.cluster' })); }