@@ -4,17 +4,10 @@ import customParseFormat from "dayjs/plugin/customParseFormat";
44import { Categories_Event , Schema_Event } from "@core/types/event.types" ;
55import { SelectOption } from "@web/common/types/component.types" ;
66import { AlignItems } from "@web/components/Flex/styled" ;
7- import { TimePicker } from "@web/components/TimePicker" ;
8- import {
9- getTimeOptionByValue ,
10- getTimeOptions ,
11- mapToBackend ,
12- shouldAdjustComplimentTime ,
13- } from "@web/common/utils/web.date.util" ;
14- import { Option_Time } from "@web/common/types/util.types" ;
157
16- import { DatePickers } from "./DatePickers" ;
17- import { StyledDateTimeFlex , StyledTimeFlex } from "./styled" ;
8+ import { DatePickers } from "./DatePickers/DatePickers" ;
9+ import { StyledDateTimeFlex } from "./styled" ;
10+ import { TimePickers } from "./TimePicker/TimePickers" ;
1811
1912dayjs . extend ( customParseFormat ) ;
2013
@@ -44,7 +37,6 @@ export const DateTimeSection: FC<Props> = ({
4437 category,
4538 event,
4639 inputColor,
47- nextElementRef,
4840 isEndDatePickerOpen,
4941 isStartDatePickerOpen,
5042 selectedEndDate,
@@ -59,93 +51,6 @@ export const DateTimeSection: FC<Props> = ({
5951 startTime,
6052 endTime,
6153} ) => {
62- const timeOptions = getTimeOptions ( ) ;
63-
64- const endTimeRef = useRef ( null ) ;
65-
66- const adjustComplimentTimeIfNeeded = (
67- changed : "start" | "end" ,
68- value : string
69- ) : Option_Time => {
70- const start = changed === "start" ? value : startTime . value ;
71- const end = changed === "end" ? value : endTime . value ;
72-
73- const { shouldAdjust, adjustment, compliment } = shouldAdjustComplimentTime (
74- changed ,
75- {
76- oldStart : startTime . value ,
77- start,
78- oldEnd : endTime . value ,
79- end,
80- }
81- ) ;
82-
83- if ( shouldAdjust ) {
84- if ( changed === "start" ) {
85- const _correctedEnd = compliment . add ( adjustment , "minutes" ) ;
86- const correctedEnd = getTimeOptionByValue ( _correctedEnd ) ;
87- setEndTime ( correctedEnd ) ;
88- return correctedEnd ;
89- }
90-
91- if ( changed === "end" ) {
92- const _correctedStart = compliment . subtract ( adjustment , "minutes" ) ;
93- const correctedStart = getTimeOptionByValue ( _correctedStart ) ;
94- setStartTime ( correctedStart ) ;
95- return correctedStart ;
96- }
97- }
98-
99- const defaultOption = changed === "start" ? startTime : endTime ;
100- return defaultOption ;
101- } ;
102-
103- const onSelectEndTime = ( option : SelectOption < string > ) => {
104- setEndTime ( option ) ;
105- const correctedStart = adjustComplimentTimeIfNeeded ( "end" , option . value ) ;
106-
107- if ( endTime . value && endTime . value !== option . value ) {
108- const { startDate, endDate } = mapToBackend ( {
109- startDate : selectedStartDate ,
110- endDate : selectedEndDate ,
111- startTime : correctedStart ? correctedStart : startTime ,
112- endTime : option ,
113- isAllDay : false ,
114- } ) ;
115-
116- const _event = {
117- ...event ,
118- startDate,
119- endDate,
120- } ;
121-
122- setEvent ( _event ) ;
123- }
124- } ;
125-
126- const onSelectStartTime = ( option : SelectOption < string > ) => {
127- setStartTime ( option ) ;
128- const correctedEnd = adjustComplimentTimeIfNeeded ( "start" , option . value ) ;
129-
130- if ( startTime . value && startTime . value !== option . value ) {
131- const { startDate, endDate } = mapToBackend ( {
132- startDate : selectedStartDate ,
133- endDate : selectedEndDate ,
134- startTime : option ,
135- endTime : correctedEnd ? correctedEnd : endTime ,
136- isAllDay : false ,
137- } ) ;
138-
139- const _event = {
140- ...event ,
141- startDate,
142- endDate,
143- } ;
144-
145- setEvent ( _event ) ;
146- }
147- } ;
148-
14954 return (
15055 < StyledDateTimeFlex alignItems = { AlignItems . CENTER } role = "tablist" >
15156 { category === Categories_Event . ALLDAY && (
@@ -164,28 +69,17 @@ export const DateTimeSection: FC<Props> = ({
16469 ) }
16570
16671 { category === Categories_Event . TIMED && (
167- < StyledTimeFlex alignItems = { AlignItems . CENTER } >
168- < TimePicker
169- bgColor = { bgColor }
170- value = { startTime }
171- inputId = "startTimePicker"
172- nextElementRef = { endTimeRef }
173- onChange = { onSelectStartTime }
174- openMenuOnFocus
175- options = { timeOptions }
176- />
177- -
178- < TimePicker
179- bgColor = { bgColor }
180- value = { endTime }
181- inputId = "endTimePicker"
182- nextElementRef = { nextElementRef }
183- onChange = { onSelectEndTime }
184- openMenuOnFocus
185- options = { timeOptions }
186- ref = { endTimeRef }
187- />
188- </ StyledTimeFlex >
72+ < TimePickers
73+ bgColor = { bgColor }
74+ endTime = { endTime }
75+ event = { event }
76+ setStartTime = { setStartTime }
77+ setEndTime = { setEndTime }
78+ setEvent = { setEvent }
79+ startTime = { startTime }
80+ selectedEndDate = { selectedEndDate }
81+ selectedStartDate = { selectedStartDate }
82+ />
18983 ) }
19084 </ StyledDateTimeFlex >
19185 ) ;
0 commit comments