add @tanstack/query

This commit is contained in:
pa
2026-03-06 18:14:24 +09:00
parent 7d2bb022a4
commit e665b3815d
40 changed files with 2171 additions and 232 deletions

View File

@@ -0,0 +1,55 @@
import { useQuery } from '@tanstack/vue-query';
import { avatarRequest, groupRequest, instanceRequest, userRequest, worldRequest } from '../api';
import { queryKeys } from './keys';
import { entityQueryPolicies, toQueryOptions } from './policies';
export function useUserQuery(userId, options = {}) {
return useQuery({
...options,
queryKey: queryKeys.user(userId),
queryFn: () => userRequest.getUser({ userId }),
enabled: Boolean(userId),
...toQueryOptions(entityQueryPolicies.user)
});
}
export function useAvatarQuery(avatarId, options = {}) {
return useQuery({
...options,
queryKey: queryKeys.avatar(avatarId),
queryFn: () => avatarRequest.getAvatar({ avatarId }),
enabled: Boolean(avatarId),
...toQueryOptions(entityQueryPolicies.avatar)
});
}
export function useWorldQuery(worldId, options = {}) {
return useQuery({
...options,
queryKey: queryKeys.world(worldId),
queryFn: () => worldRequest.getWorld({ worldId }),
enabled: Boolean(worldId),
...toQueryOptions(entityQueryPolicies.world)
});
}
export function useGroupQuery(groupId, includeRoles = false, options = {}) {
return useQuery({
...options,
queryKey: queryKeys.group(groupId, includeRoles),
queryFn: () => groupRequest.getGroup({ groupId, includeRoles }),
enabled: Boolean(groupId),
...toQueryOptions(entityQueryPolicies.group)
});
}
export function useInstanceQuery(worldId, instanceId, options = {}) {
return useQuery({
...options,
queryKey: queryKeys.instance(worldId, instanceId),
queryFn: () => instanceRequest.getInstance({ worldId, instanceId }),
enabled: Boolean(worldId && instanceId),
...toQueryOptions(entityQueryPolicies.instance)
});
}