feat: dynamic backends

This commit is contained in:
jialin
2025-10-13 14:40:26 +08:00
parent ee95fabc47
commit bca1e8140e
19 changed files with 325 additions and 177 deletions
@@ -0,0 +1,41 @@
import { backendOptionsAtom } from '@/atoms/models';
import { useAtom } from 'jotai';
import { useEffect } from 'react';
import { queryBackendList } from '../apis';
export default function useQueryBackends() {
const [backendOptions, setBackendOptions] = useAtom(backendOptionsAtom);
const getBackendOptions = async () => {
try {
const res = await queryBackendList();
const list = res?.items?.map((item) => {
return {
value: item.backend_name,
label: item.backend_show_name,
default_backend_param: item.default_backend_param || [],
default_version: item.default_version,
versions: (item.versions || []).map((version) => ({
label: version,
value: version
}))
};
});
if (res?.items) {
setBackendOptions(list || []);
}
} catch (error) {
// ignore
setBackendOptions([]);
}
};
useEffect(() => {
getBackendOptions();
}, []);
return {
backendOptions,
getBackendOptions
};
}