Files
gpustack-ui/src/pages/usage/services/use-query-meta-data.ts
T
2026-04-22 13:16:48 +08:00

57 lines
1.2 KiB
TypeScript

import { useQueryData } from '@/hooks/use-query-data-list';
import { useState } from 'react';
import { queryUsageMetaData } from '../apis';
import { UsageFilterItem, UsageMeta } from '../config/types';
type OptionType = UsageFilterItem & {
value: string;
};
export default function useQueryUsageMetaData() {
const { detailData, loading, cancelRequest, fetchData } =
useQueryData<UsageMeta>({
fetchDetail: queryUsageMetaData,
key: 'usageMetaData'
});
const [result, setResult] = useState<{
models: OptionType[];
users: OptionType[];
api_keys: OptionType[];
}>({
models: [],
users: [],
api_keys: []
});
const queryMetaData = async () => {
const res = await fetchData({});
const data = {
models:
res?.filters?.models?.map((item) => ({
value: item.label,
...item
})) || [],
users:
res?.filters?.users?.map((item) => ({
value: item.label,
...item
})) || [],
api_keys:
res?.filters?.api_keys?.map((item) => ({
value: item.label,
...item
})) || []
};
setResult(data);
};
return {
detailData: result,
loading,
cancelRequest,
fetchData: queryMetaData
};
}