feat: dynamic backends
This commit is contained in:
@@ -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
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user