Skip to content

Commit 72c9938

Browse files
authored
Merge pull request #142 from traPtitech/refactor/queryclient-architecture
Refactor/queryclient architecture
2 parents 6d3821d + 2292cb9 commit 72c9938

File tree

4 files changed

+12
-10
lines changed

4 files changed

+12
-10
lines changed

src/api/queries/keys.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
export const meKeys = {
1+
const meKeys = {
22
all: ['me'] as const,
33
questionGroupAnswers: (questionGroupId: number) =>
44
['me', 'question-groups', questionGroupId, 'answers'] as const,
55
}
66

7-
export const campKeys = {
7+
const campKeys = {
88
all: ['camps'] as const,
99

1010
lists: () => ['camps', 'list'] as const,
@@ -20,8 +20,7 @@ export const campKeys = {
2020
dashboard: (id: number) => ['camps', 'detail', id, 'dashboard'] as const,
2121
}
2222

23-
// Icon-related keys
24-
export const iconKeys = {
23+
const iconKeys = {
2524
all: ['icons'] as const,
2625
user: (id: string) => ['icons', 'user', id] as const,
2726
}

src/components/generic/UserIcon.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<script setup lang="ts">
22
import { computed, ref, useAttrs } from 'vue'
33
import { useQuery } from '@tanstack/vue-query'
4-
import { iconKeys } from '@/api/queries/keys'
4+
import { qk } from '@/api/queries/keys'
55
import { useUserStore } from '@/store'
66
77
const props = defineProps<{ id?: string; size: number; idTooltip?: boolean }>()
@@ -28,7 +28,7 @@ const {
2828
isFetching,
2929
isError,
3030
} = useQuery<string, Error>({
31-
queryKey: iconKeys.user(userId),
31+
queryKey: qk.icons.user(userId),
3232
staleTime: 24 * 60 * 60_000, // 24h
3333
gcTime: 24 * 60 * 60_000, // 24h
3434
retry: 0,

src/components/information/QuestionGroupPanel.vue

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,15 @@ import { ref, computed, onMounted, reactive, toRaw } from 'vue'
55
import { useCampStore } from '@/store'
66
import QuestionGroupEditor from '@/components/information/QuestionGroupEditor.vue'
77
import QuestionGroupViewer from '@/components/information/QuestionGroupViewer.vue'
8-
import { useMutation } from '@tanstack/vue-query'
9-
import { queryClient } from '@/lib/queryClient'
8+
import { useMutation, useQueryClient } from '@tanstack/vue-query'
109
import { qk } from '@/api/queries/keys'
1110
1211
type QuestionGroup = components['schemas']['QuestionGroupResponse']
1312
type Question = components['schemas']['QuestionResponse']
1413
type Camp = components['schemas']['CampResponse']
1514
15+
const queryClient = useQueryClient()
16+
1617
const props = defineProps<{
1718
questionGroup: QuestionGroup
1819
camp: Camp

src/store.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,15 @@ import { defineStore } from 'pinia'
22
import { ref, computed } from 'vue'
33
import type { components } from '@/api/schema'
44
import { apiClient } from '@/api/apiClient'
5-
import { queryClient } from '@/lib/queryClient'
5+
import { useQueryClient } from '@tanstack/vue-query'
66
import { qk } from '@/api/queries/keys'
77

88
type User = components['schemas']['UserResponse']
99
type Camp = components['schemas']['CampResponse']
1010

1111
export const useUserStore = defineStore('user', () => {
1212
const user = ref<User>()
13+
const queryClient = useQueryClient()
1314

1415
const initUser = async () => {
1516
const data = await queryClient.ensureQueryData({
@@ -39,6 +40,7 @@ export const useUserStore = defineStore('user', () => {
3940
})
4041

4142
export const useCampStore = defineStore('camp', () => {
43+
const queryClient = useQueryClient()
4244
const latestCamp = ref<Camp>()
4345
const allCamps = ref<Camp[]>([])
4446
const hasRegisteredLatest = ref(false) // 最新の合宿に参加登録済みかどうか
@@ -122,7 +124,7 @@ export const useCampStore = defineStore('camp', () => {
122124
hasRegisteredLatest.value = false
123125
// 参加取り消し後は参加者リストを即時更新
124126
const participantsKey = qk.camps.participants(campId)
125-
127+
126128
await queryClient.fetchQuery({
127129
queryKey: participantsKey,
128130
queryFn: async () => {

0 commit comments

Comments
 (0)