= (props) => {
wrapper: { flex: 1, maxWidth: 240, minWidth: 150 }
}}
value={selectedUsers}
+ optionLabelRender={userOptionRender}
onChange={onUsersChange}
/>
{
+ console.log('Selected Time: ', dateStrings);
const [start_date, end_date] = dateStrings;
const next = { ...commonFilters, start_date, end_date };
setCommonFilters(next);
diff --git a/src/pages/usage/services/use-query-meta-data.ts b/src/pages/usage/services/use-query-meta-data.ts
index cb06e42c..33be9293 100644
--- a/src/pages/usage/services/use-query-meta-data.ts
+++ b/src/pages/usage/services/use-query-meta-data.ts
@@ -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[];
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 || [], {