fix: usage datepicker
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import { useQueryData } from '@/hooks/use-query-data-list';
|
||||
import { useModel } from '@@/plugin-model';
|
||||
import { useState } from 'react';
|
||||
import { queryUsageMetaData } from '../apis';
|
||||
import { GroupOption, groupToOptions } from '../config';
|
||||
@@ -14,7 +15,7 @@ export default function useQueryUsageMetaData() {
|
||||
fetchDetail: queryUsageMetaData,
|
||||
key: 'usageMetaData'
|
||||
});
|
||||
|
||||
const { initialState } = useModel('@@initialState');
|
||||
const [result, setResult] = useState<{
|
||||
models: GroupOption<UsageFilterItem>[];
|
||||
users: UserOptionType[];
|
||||
@@ -25,9 +26,23 @@ export default function useQueryUsageMetaData() {
|
||||
api_keys: []
|
||||
});
|
||||
|
||||
// the current user sort in the first place
|
||||
const sortUsers = (users: UsageFilterItem[]) => {
|
||||
const currentUserId = initialState?.currentUser?.id;
|
||||
if (!currentUserId) return users;
|
||||
|
||||
const sortedUsers = [...users].sort((a, b) => {
|
||||
if (a.identity.current.user_id === currentUserId) return -1;
|
||||
if (b.identity.current.user_id === currentUserId) return 1;
|
||||
return 0;
|
||||
});
|
||||
|
||||
return sortedUsers;
|
||||
};
|
||||
|
||||
const queryMetaData = async () => {
|
||||
const res = await fetchData({});
|
||||
|
||||
const sortedUsers = sortUsers(res?.filters?.users || []);
|
||||
const data = {
|
||||
models: groupToOptions(res?.filters?.models || [], {
|
||||
getGroupKey: (item) => item.identity.value.provider_name || 'gpustack',
|
||||
@@ -40,8 +55,10 @@ export default function useQueryUsageMetaData() {
|
||||
})
|
||||
}),
|
||||
users:
|
||||
res?.filters?.users?.map((item) => ({
|
||||
sortedUsers.map((item) => ({
|
||||
value: item.label,
|
||||
isCurrent:
|
||||
item.identity.current.user_id === initialState?.currentUser?.id,
|
||||
...item
|
||||
})) || [],
|
||||
api_keys: groupToOptions(res?.filters?.api_keys || [], {
|
||||
|
||||
Reference in New Issue
Block a user