fix: default instance type, storageMode
This commit is contained in:
@@ -91,14 +91,13 @@ const AddModal: React.FC<AddModalProps> = ({
|
||||
const [loading, setLoading] = useState(false);
|
||||
|
||||
const {
|
||||
detailData,
|
||||
detailData: instanceTypeList,
|
||||
loading: instanceTypesLoading,
|
||||
fetchData
|
||||
} = useQueryInstanceTypes();
|
||||
const { detailData: templatesData, fetchData: fetchTemplates } =
|
||||
useQueryTemplates();
|
||||
|
||||
const instanceTypeList = detailData?.items || [];
|
||||
const templateList = templatesData?.items || [];
|
||||
// const readonly = action === PageAction.VIEW;
|
||||
const readonly = false;
|
||||
@@ -180,7 +179,7 @@ const AddModal: React.FC<AddModalProps> = ({
|
||||
);
|
||||
};
|
||||
|
||||
// initial
|
||||
// initial for first
|
||||
const applyAutoSelection = (
|
||||
instanceTypes: InstanceTypeItem[],
|
||||
templates: TemplateItem[]
|
||||
@@ -230,13 +229,12 @@ const AddModal: React.FC<AddModalProps> = ({
|
||||
|
||||
if (action === PageAction.CREATE) {
|
||||
const session = ++sessionRef.current;
|
||||
Promise.all([
|
||||
fetchData({ page: 1, perPage: 100 }),
|
||||
fetchTemplates({ page: -1 })
|
||||
]).then(([instanceRes, templatesRes]) => {
|
||||
if (sessionRef.current !== session) return;
|
||||
applyAutoSelection(instanceRes?.items || [], templatesRes?.items || []);
|
||||
});
|
||||
Promise.all([fetchData({ page: -1 }), fetchTemplates({ page: -1 })]).then(
|
||||
([instanceResItems, templatesRes]) => {
|
||||
if (sessionRef.current !== session) return;
|
||||
applyAutoSelection(instanceResItems || [], templatesRes?.items || []);
|
||||
}
|
||||
);
|
||||
}
|
||||
}, [open, shouldAutoSelectResource, action]);
|
||||
|
||||
|
||||
@@ -3,7 +3,6 @@ import { TemplateCard } from '@gpustack/core-ui';
|
||||
import { Empty, Spin } from 'antd';
|
||||
import _ from 'lodash';
|
||||
import styled from 'styled-components';
|
||||
import { getAcceleratorMax } from '../config';
|
||||
import { InstanceTypeItem as InstanceTypeItemModel } from '../config/types';
|
||||
import InstanceTypeItem from './instance-type-item';
|
||||
|
||||
@@ -20,34 +19,17 @@ interface InstanceTypeListProps {
|
||||
loading?: boolean;
|
||||
}
|
||||
|
||||
// CPU types always have stock (no accelerator). Accelerated types are
|
||||
// considered available when at least one tier offers onceMaxRequest > 0.
|
||||
const isAvailable = (item: InstanceTypeItemModel) => {
|
||||
if (!item.spec?.acceleratable) return true;
|
||||
return getAcceleratorMax(item.status?.acceleratorTiers) > 0;
|
||||
};
|
||||
|
||||
const InstanceTypeList: React.FC<InstanceTypeListProps> = ({
|
||||
value,
|
||||
onChange,
|
||||
dataList = [],
|
||||
loading
|
||||
}) => {
|
||||
const handleSelect = (
|
||||
item: InstanceTypeItemModel & { disabled?: boolean }
|
||||
) => {
|
||||
const handleSelect = (item: InstanceTypeItemModel) => {
|
||||
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 (
|
||||
@@ -65,7 +47,7 @@ const InstanceTypeList: React.FC<InstanceTypeListProps> = ({
|
||||
|
||||
return (
|
||||
<TypeGrid>
|
||||
{filterList.map((item) => {
|
||||
{dataList.map((item) => {
|
||||
const name = item.name;
|
||||
return (
|
||||
<TemplateCard
|
||||
|
||||
Reference in New Issue
Block a user