mirror of
https://github.com/jeffvli/feishin.git
synced 2026-05-08 04:50:12 +02:00
57 lines
2.0 KiB
TypeScript
57 lines
2.0 KiB
TypeScript
import { queryOptions } from '@tanstack/react-query';
|
|
|
|
import { api } from '/@/renderer/api';
|
|
import { queryKeys } from '/@/renderer/api/query-keys';
|
|
import { QueryHookArgs } from '/@/renderer/lib/react-query';
|
|
import { MusicFolderListQuery, TagQuery, UserListQuery } from '/@/shared/types/domain-types';
|
|
|
|
export const sharedQueries = {
|
|
musicFolders: (args: QueryHookArgs<MusicFolderListQuery>) => {
|
|
return queryOptions({
|
|
queryFn: ({ signal }) => {
|
|
return api.controller.getMusicFolderList({
|
|
apiClientProps: { serverId: args.serverId, signal },
|
|
});
|
|
},
|
|
queryKey: queryKeys.musicFolders.list(args.serverId),
|
|
...args.options,
|
|
});
|
|
},
|
|
roles: (args: QueryHookArgs<object>) => {
|
|
return queryOptions({
|
|
queryFn: ({ signal }) => {
|
|
return api.controller.getRoles({
|
|
apiClientProps: { serverId: args.serverId, signal },
|
|
});
|
|
},
|
|
queryKey: queryKeys.roles.list(args.serverId || ''),
|
|
...args.options,
|
|
});
|
|
},
|
|
tags: (args: QueryHookArgs<TagQuery>) => {
|
|
return queryOptions({
|
|
gcTime: 1000 * 60,
|
|
queryFn: ({ signal }) => {
|
|
return api.controller.getTags({
|
|
apiClientProps: { serverId: args.serverId, signal },
|
|
query: args.query,
|
|
});
|
|
},
|
|
queryKey: queryKeys.tags.list(args.serverId || '', args.query.type),
|
|
...args.options,
|
|
});
|
|
},
|
|
users: (args: QueryHookArgs<UserListQuery>) => {
|
|
return queryOptions({
|
|
queryFn: ({ signal }) => {
|
|
return api.controller.getUserList({
|
|
apiClientProps: { serverId: args.serverId, signal },
|
|
query: args.query,
|
|
});
|
|
},
|
|
queryKey: queryKeys.users.list(args.serverId || '', args.query),
|
|
...args.options,
|
|
});
|
|
},
|
|
};
|