1
- import { FC } from 'react' ;
1
+ import { FC , useState } from 'react' ;
2
2
import { dateToYYMMDD } from '@/utils/dateUtils' ;
3
+ import { getGroupSchedulePeriodErrorDefineObject } from '@/utils/groupScheduleUtils' ;
3
4
4
5
interface Props {
5
6
startDate : string ;
6
7
endDate : string ;
7
8
}
8
9
9
10
const GroupFormDateInput : FC < Props > = ( { startDate, endDate } ) => {
11
+ const [ curStartDate , setCurStartDate ] = useState < string > ( dateToYYMMDD ( startDate ) ) ;
12
+ const [ curEndDate , setCurEndDate ] = useState < string > ( dateToYYMMDD ( endDate ) ) ;
13
+ const { errorText, isError } = getGroupSchedulePeriodErrorDefineObject ( {
14
+ startDate : curStartDate ,
15
+ endDate : curEndDate ,
16
+ } ) ;
17
+
18
+ const onStartDateChange = ( e : React . ChangeEvent < HTMLInputElement > ) => {
19
+ setCurStartDate ( e . target . value ) ;
20
+ } ;
21
+
22
+ const onEndDateChange = ( e : React . ChangeEvent < HTMLInputElement > ) => {
23
+ setCurEndDate ( e . target . value ) ;
24
+ } ;
25
+
10
26
return (
11
27
< div className = "w-full" >
12
28
< label className = "label label-text w-full text-start" > 모임 설정 기간 *</ label >
@@ -17,7 +33,8 @@ const GroupFormDateInput: FC<Props> = ({ startDate, endDate }) => {
17
33
< input
18
34
className = "input border-none"
19
35
type = "date"
20
- defaultValue = { dateToYYMMDD ( new Date ( startDate ) ) }
36
+ onChange = { onStartDateChange }
37
+ value = { curStartDate }
21
38
id = "group-start-date-input"
22
39
name = "startDate"
23
40
/>
@@ -28,11 +45,15 @@ const GroupFormDateInput: FC<Props> = ({ startDate, endDate }) => {
28
45
< input
29
46
className = "input border-none"
30
47
type = "date"
48
+ onChange = { onEndDateChange }
31
49
id = "group-end-date-input"
32
- defaultValue = { dateToYYMMDD ( new Date ( endDate ) ) }
50
+ value = { curEndDate }
33
51
name = "endDate"
34
52
/>
35
53
</ div >
54
+ < div className = "label flex h-8 flex-row items-center" >
55
+ < span className = { `label-text-alt ${ isError ? 'text-error' : '' } ` } > { isError ? errorText : '' } </ span >
56
+ </ div >
36
57
</ div >
37
58
) ;
38
59
} ;
0 commit comments