@@ -2,9 +2,10 @@ import { useMutation } from '@tanstack/react-query';
2
2
import { queries } from './queryKeys' ;
3
3
import { Member } from '@/types/Member' ;
4
4
import { useNavigate } from 'react-router-dom' ;
5
- import { useEffect , useRef } from 'react' ;
5
+ import { useEffect , useRef , useState } from 'react' ;
6
6
import { updateGroup } from '@/apis/updateGroupApi.ts' ;
7
7
import { updateGroupMember } from '@/apis/updateGroupMemberApi.ts' ;
8
+ import { isValidGroupInput } from '@/utils/groupScheduleUtils.ts' ;
8
9
9
10
interface UpdateGroup {
10
11
name : string ;
@@ -27,6 +28,8 @@ export const useUpdateGroup = () => {
27
28
const errorDialogRef = useRef < DialogElement | null > ( null ) ;
28
29
const successDialog = useRef < DialogElement | null > ( null ) ;
29
30
31
+ const [ errorText , setErrorText ] = useState ( '모임 일정 수정에 실패했습니다.' ) ;
32
+
30
33
const {
31
34
mutate : updateGroupMutate ,
32
35
isPending : updateGroupIsPending ,
@@ -50,6 +53,14 @@ export const useUpdateGroup = () => {
50
53
} ) ;
51
54
52
55
const mutate = ( data : UpdateGroup ) => {
56
+ const validationResult = isValidGroupInput ( data ) ;
57
+
58
+ if ( validationResult . error ) {
59
+ errorDialogRef ?. current ?. openModal ( ) ;
60
+ setErrorText ( validationResult . errorText ) ;
61
+ return ;
62
+ }
63
+
53
64
updateGroupMutate ( data ) ;
54
65
updateGroupMemberMutate ( {
55
66
updatedMemberList : data . newMemberList ,
@@ -75,6 +86,7 @@ export const useUpdateGroup = () => {
75
86
76
87
return {
77
88
mutate,
89
+ errorText,
78
90
isPending : updateGroupIsPending || updateGroupMemberIsPending ,
79
91
errorDialogRef,
80
92
successDialog,
0 commit comments