File tree Expand file tree Collapse file tree 2 files changed +32
-12
lines changed
Expand file tree Collapse file tree 2 files changed +32
-12
lines changed Original file line number Diff line number Diff line change 55 useMyReservations ,
66 useCancelReservation ,
77 useCreateReview ,
8+ invalidateActivityQueries ,
89} from '@/hooks/useReservationQueries' ;
910import { FilterOption } from '@/constants/reservationConstants' ;
1011import useInfiniteScroll from '@/hooks/useInfiniteScroll' ;
@@ -102,23 +103,21 @@ export default function MyReservationsPage() {
102103 // 후기 작성 확인
103104 const handleReviewConfirm = ( rating : number , content : string ) => {
104105 if ( reviewModal . reservationId ) {
106+ const reservation = allReservations . find (
107+ ( r ) => r . id === reviewModal . reservationId ,
108+ ) ;
109+
105110 createReviewMutation . mutate (
106111 {
107112 reservationId : reviewModal . reservationId ,
108113 data : { rating, content } ,
109114 } ,
110115 {
111116 onSuccess : ( ) => {
112- setReviewModal ( {
113- isOpen : false ,
114- reservationId : null ,
115- activityTitle : null ,
116- activityImage : null ,
117- activityDate : null ,
118- activityTime : null ,
119- headCount : null ,
120- totalPrice : null ,
121- } ) ;
117+ // 성공 후 추가 쿼리 무효화
118+ if ( reservation ?. activity . id ) {
119+ invalidateActivityQueries ( reservation . activity . id ) ;
120+ }
122121 } ,
123122 } ,
124123 ) ;
Original file line number Diff line number Diff line change @@ -73,15 +73,36 @@ export const useCreateReview = () => {
7373 reservationId : number ;
7474 data : CreateReviewRequest ;
7575 } ) => createReview ( reservationId , data ) ,
76- onSuccess : ( ) => {
77- // 예약 리스트 캐시 무효화하여 reviewSubmitted 상태 업데이트
76+ onSuccess : ( data , variables ) => {
77+ // 기존 쿼리 무효화
7878 queryClient . invalidateQueries ( {
7979 queryKey : RESERVATION_QUERY_KEYS . RESERVATIONS ,
8080 } ) ;
81+
8182 toast . success ( '후기가 작성되었습니다.' ) ;
8283 } ,
8384 onError : ( error ) => {
8485 toast . error ( `후기 작성 실패: ${ error . message } ` ) ;
8586 } ,
8687 } ) ;
8788} ;
89+
90+ // 쿼리 무효화 함수
91+ export const invalidateActivityQueries = ( activityId : number ) => {
92+ const queryClient = useQueryClient ( ) ;
93+
94+ queryClient . invalidateQueries ( {
95+ queryKey : [ 'popularExperiences' ] ,
96+ } ) ;
97+ queryClient . invalidateQueries ( {
98+ queryKey : [ 'experiences' ] ,
99+ exact : false ,
100+ } ) ;
101+ queryClient . invalidateQueries ( {
102+ queryKey : [ 'activity' , activityId . toString ( ) ] ,
103+ } ) ;
104+ queryClient . invalidateQueries ( {
105+ queryKey : [ 'reviews' ] ,
106+ exact : false ,
107+ } ) ;
108+ } ;
You can’t perform that action at this time.
0 commit comments