@@ -13,11 +13,15 @@ import {
13
13
} from '@/types/petProfile/remote' ;
14
14
import { zipgoLocalStorage } from '@/utils/localStorage' ;
15
15
16
- const QUERY_KEY = { breedList : 'breedList' , petItem : 'petItem' , petList : 'petList' } ;
16
+ const PET_PROFILE_QUERY_KEY = {
17
+ breedList : 'breedList' ,
18
+ petItem : ( petId : number ) => [ 'petItem' , petId ] ,
19
+ petList : 'petList' ,
20
+ } ;
17
21
18
22
export const useBreedListQuery = ( ) => {
19
23
const { data, ...restQuery } = useQuery ( {
20
- queryKey : [ QUERY_KEY . breedList ] ,
24
+ queryKey : [ PET_PROFILE_QUERY_KEY . breedList ] ,
21
25
queryFn : ( ) => getBreeds ( ) ,
22
26
} ) ;
23
27
@@ -29,22 +33,19 @@ export const useBreedListQuery = () => {
29
33
30
34
export const usePetItemQuery = ( payload : Parameter < typeof getPet > ) => {
31
35
const { data, ...restQuery } = useQuery ( {
32
- queryKey : [ QUERY_KEY . petItem ] ,
36
+ queryKey : PET_PROFILE_QUERY_KEY . petItem ( payload . petId ) ,
33
37
queryFn : ( ) => getPet ( payload ) ,
34
38
} ) ;
35
- const queryClient = useQueryClient ( ) ;
36
- const resetPetItemQuery = ( ) => queryClient . removeQueries ( [ QUERY_KEY . petItem ] ) ;
37
39
38
40
return {
39
41
petItem : data ,
40
42
...restQuery ,
41
- resetPetItemQuery,
42
43
} ;
43
44
} ;
44
45
45
46
export const usePetListQuery = ( ) => {
46
47
const { data, ...restQuery } = useQuery ( {
47
- queryKey : [ QUERY_KEY . petList ] ,
48
+ queryKey : [ PET_PROFILE_QUERY_KEY . petList ] ,
48
49
queryFn : ( ) => getPets ( ) ,
49
50
} ) ;
50
51
@@ -86,7 +87,7 @@ export const useAddPetMutation = () => {
86
87
} ;
87
88
88
89
export const useEditPetMutation = ( ) => {
89
- const { resetPetItemQuery } = usePetItemQuery ( { petId : 0 } ) ;
90
+ const queryClient = useQueryClient ( ) ;
90
91
const { petProfile : petProfileInHeader , updatePetProfile : updatePetProfileInHeader } =
91
92
usePetProfile ( ) ;
92
93
@@ -100,7 +101,8 @@ export const useEditPetMutation = () => {
100
101
onSuccess : ( putPetRes , newPetProfile , context ) => {
101
102
if ( newPetProfile . id === petProfileInHeader ?. id ) updatePetProfileInHeader ( newPetProfile ) ;
102
103
103
- resetPetItemQuery ( ) ;
104
+ queryClient . invalidateQueries ( [ PET_PROFILE_QUERY_KEY . petList ] ) ;
105
+ queryClient . invalidateQueries ( PET_PROFILE_QUERY_KEY . petItem ( newPetProfile . id ) ) ;
104
106
105
107
alert ( '반려동물 정보 수정이 완료되었습니다.' ) ;
106
108
} ,
@@ -113,8 +115,9 @@ export const useEditPetMutation = () => {
113
115
} ;
114
116
115
117
export const useRemovePetMutation = ( ) => {
118
+ const queryClient = useQueryClient ( ) ;
116
119
const { refetch : refetchPetList } = usePetListQuery ( ) ;
117
- const { resetPetItemQuery } = usePetItemQuery ( { petId : 0 } ) ;
120
+
118
121
const {
119
122
petProfile : petProfileInHeader ,
120
123
updatePetProfile : updatePetProfileInHeader ,
@@ -141,7 +144,8 @@ export const useRemovePetMutation = () => {
141
144
if ( ! newestPet ) resetPetProfileInHeader ( ) ;
142
145
}
143
146
144
- resetPetItemQuery ( ) ;
147
+ queryClient . invalidateQueries ( [ PET_PROFILE_QUERY_KEY . petList ] ) ;
148
+ queryClient . invalidateQueries ( PET_PROFILE_QUERY_KEY . petItem ( deletePetReq . petId ) ) ;
145
149
146
150
alert ( '반려동물 정보를 삭제했습니다.' ) ;
147
151
} ,
0 commit comments