diff --git a/src/pages/gpu-service/instances/components/add-modal.tsx b/src/pages/gpu-service/instances/components/add-modal.tsx index 962b6d9e..95486358 100644 --- a/src/pages/gpu-service/instances/components/add-modal.tsx +++ b/src/pages/gpu-service/instances/components/add-modal.tsx @@ -200,9 +200,13 @@ const AddModal: React.FC = ({ } return; } - if (!instanceTypes.length) return; - const first = instanceTypes[0]; + const first = instanceTypes.find((item) => !item.disabled); + + if (!first) return; + + // On create, auto-select the first instance type in the list + const template = findTemplateByManufacturer( first.spec?.manufacturer, templates diff --git a/src/pages/gpu-service/instances/components/instance-type-list.tsx b/src/pages/gpu-service/instances/components/instance-type-list.tsx index d4ba983d..4b290b38 100644 --- a/src/pages/gpu-service/instances/components/instance-type-list.tsx +++ b/src/pages/gpu-service/instances/components/instance-type-list.tsx @@ -33,11 +33,21 @@ const InstanceTypeList: React.FC = ({ dataList = [], loading }) => { - const handleSelect = (item: InstanceTypeItemModel) => { - if (!isAvailable(item) || value === item.name) return; + const handleSelect = ( + item: InstanceTypeItemModel & { disabled?: boolean } + ) => { + if (item.disabled || value === item.name) return; onChange?.(item); }; + const filterList = dataList.map((item) => { + const available = isAvailable(item); + return { + ...item, + disabled: !available + }; + }); + if (!dataList.length) { if (loading) { return ( @@ -55,8 +65,7 @@ const InstanceTypeList: React.FC = ({ return ( - {dataList.map((item) => { - const disabled = !isAvailable(item); + {filterList.map((item) => { const name = item.name; return ( = ({ hoverable height={106} active={value === name} - disabled={disabled} + disabled={item.disabled} onClick={() => handleSelect(item)} > diff --git a/src/pages/gpu-service/instances/config/types.ts b/src/pages/gpu-service/instances/config/types.ts index dc880244..9985345f 100644 --- a/src/pages/gpu-service/instances/config/types.ts +++ b/src/pages/gpu-service/instances/config/types.ts @@ -131,6 +131,7 @@ export interface InstanceTypeStatus { export interface InstanceTypeItem { name: string; spec: InstanceTypeSpec; + disabled?: boolean; status: InstanceTypeStatus; }