fix: did not cache workers and clusters in model files

This commit is contained in:
jialin
2025-12-31 10:23:15 +08:00
parent 41ebceca8f
commit 66e8f83395
2 changed files with 46 additions and 24 deletions
+13
View File
@@ -20,17 +20,30 @@ export const getRequestId = () => {
return store.get(requestIdAtom); return store.get(requestIdAtom);
}; };
// store for cluster list: res.items from api
export const clusterListAtom = atom< export const clusterListAtom = atom<
{ {
label: string; label: string;
value: number; value: number;
provider: string;
state: string;
is_default: boolean;
workers: number;
ready_workers: number;
gpus: number;
}[] }[]
>([]); >([]);
// store for worker list: res.items from api
export const workerListAtom = atom< export const workerListAtom = atom<
{ {
label: string; label: string;
value: number; value: number;
cluster_id: number;
state: string;
id: number;
labels: Record<string, any>;
name: string;
}[] }[]
>([]); >([]);
@@ -153,6 +153,8 @@ export const useGenerateWorkerOptions = () => {
{ state: string; labels: Record<string, string>; cluster_id: number } { state: string; labels: Record<string, string>; cluster_id: number }
>[] >[]
>([]); >([]);
const [, setClusterListAtom] = useAtom(clusterListAtom);
const [, setWorkerListAtom] = useAtom(workerListAtom);
const generateCascaderWorkerOptions = ( const generateCascaderWorkerOptions = (
workerList: WorkerListItem[], workerList: WorkerListItem[],
@@ -201,29 +203,31 @@ export const useGenerateWorkerOptions = () => {
const data = await getDataList(); const data = await getDataList();
const [workerList, clusterList] = data; const [workerList, clusterList] = data;
generateCascaderWorkerOptions(workerList, clusterList); generateCascaderWorkerOptions(workerList, clusterList);
setWorkersList(
workerList.map((item) => ({ const workerOptions = workerList.map((item) => ({
cluster_id: item.cluster_id, cluster_id: item.cluster_id,
state: item.state, state: item.state,
label: item.name, label: item.name,
value: item.id, value: item.id,
id: item.id, id: item.id,
labels: item.labels || {}, labels: item.labels || {},
name: item.name name: item.name
})) }));
); const clusterOptions = clusterList.map((item) => ({
setClusterList( label: item.name,
clusterList.map((item) => ({ value: item.id,
label: item.name, provider: item.provider as string,
value: item.id, state: item.state,
provider: item.provider as string, is_default: item.is_default,
state: item.state, workers: item.workers,
is_default: item.is_default, ready_workers: item.ready_workers,
workers: item.workers, gpus: item.gpus
ready_workers: item.ready_workers, }));
gpus: item.gpus
})) setWorkersList(workerOptions);
); setClusterList(clusterOptions);
setWorkerListAtom(workerOptions);
setClusterListAtom(clusterOptions);
}; };
return { return {
getWorkerOptionList, getWorkerOptionList,
@@ -280,7 +284,12 @@ export default function useFormInitialValues() {
const list = const list =
data.items?.map((item) => ({ data.items?.map((item) => ({
label: item.name, label: item.name,
value: item.id value: item.id,
cluster_id: item.cluster_id,
state: item.state,
id: item.id,
labels: item.labels || {},
name: item.name
})) || []; })) || [];
setWorkerList(data.items); setWorkerList(data.items);
setWorkerListAtom(list); setWorkerListAtom(list);