@@ -36,6 +36,7 @@ import {
3636import { meetingDurationOptions , slotMinuteOptions } from "@/lib/constants" ;
3737import { useI18n } from "@/lib/i18n/context" ;
3838import { buildTimezoneOptions } from "@/lib/timezone-options" ;
39+ import type { EventType } from "@/lib/types" ;
3940import { cn } from "@/lib/utils" ;
4041import { createEventCreateSchema } from "@/lib/validators" ;
4142
@@ -63,7 +64,6 @@ const eventFieldOrder = [
6364
6465type EventField = ( typeof eventFieldOrder ) [ number ] ;
6566type EventFormErrors = Partial < Record < EventField , string > > ;
66- type EventType = "time_grid" | "full_day" ;
6767
6868const eventFieldIds : Record < EventField , string > = {
6969 eventType : "event-type" ,
@@ -109,17 +109,6 @@ function getDefaultDateRange(eventType: EventType, today: Date): DateRange {
109109 } ;
110110}
111111
112- function dateRangeMatchesByDay ( left : DateRange | undefined , right : DateRange ) {
113- if ( ! left ?. from || ! left ?. to || ! right . from || ! right . to ) {
114- return false ;
115- }
116-
117- return (
118- format ( left . from , "yyyy-MM-dd" ) === format ( right . from , "yyyy-MM-dd" ) &&
119- format ( left . to , "yyyy-MM-dd" ) === format ( right . to , "yyyy-MM-dd" )
120- ) ;
121- }
122-
123112function sortWeekdays ( values : number [ ] ) {
124113 return [ ...values ] . sort (
125114 ( left , right ) =>
@@ -198,16 +187,13 @@ export function CreateEventForm({
198187 const [ errorMessage , setErrorMessage ] = useState < string | null > ( null ) ;
199188 const [ fieldErrors , setFieldErrors ] = useState < EventFormErrors > ( { } ) ;
200189 const [ isRangePickerOpen , setIsRangePickerOpen ] = useState ( false ) ;
201- const [ defaultDateRangeStart ] = useState ( ( ) => startOfToday ( ) ) ;
190+ const [ initialDateRange ] = useState ( ( ) => getDefaultDateRange ( "time_grid" , startOfToday ( ) ) ) ;
202191 const [ eventType , setEventType ] = useState < EventType > ( "time_grid" ) ;
203192 const [ title , setTitle ] = useState ( "" ) ;
204193 const [ notificationEmail , setNotificationEmail ] = useState ( "" ) ;
205- const [ dateRange , setDateRange ] = useState < DateRange | undefined > ( ( ) =>
206- getDefaultDateRange ( "time_grid" , defaultDateRangeStart ) ,
207- ) ;
208- const [ draftDateRange , setDraftDateRange ] = useState < DateRange | undefined > ( ( ) =>
209- getDefaultDateRange ( "time_grid" , defaultDateRangeStart ) ,
210- ) ;
194+ const [ dateRange , setDateRange ] = useState < DateRange | undefined > ( initialDateRange ) ;
195+ const [ draftDateRange , setDraftDateRange ] = useState < DateRange | undefined > ( initialDateRange ) ;
196+ const [ usesDefaultDateRange , setUsesDefaultDateRange ] = useState ( true ) ;
211197 const [ timezone , setTimezone ] = useState ( ( ) => {
212198 const browserTimezone =
213199 typeof window !== "undefined"
@@ -329,6 +315,7 @@ export function CreateEventForm({
329315 }
330316
331317 setDateRange ( draftDateRange ) ;
318+ setUsesDefaultDateRange ( false ) ;
332319 clearErrors ( "dates" ) ;
333320 setIsRangePickerOpen ( false ) ;
334321 }
@@ -345,9 +332,8 @@ export function CreateEventForm({
345332 }
346333
347334 function selectEventType ( nextEventType : EventType ) {
348- const currentDefaultRange = getDefaultDateRange ( eventType , defaultDateRangeStart ) ;
349- if ( dateRangeMatchesByDay ( dateRange , currentDefaultRange ) ) {
350- const nextDefaultRange = getDefaultDateRange ( nextEventType , defaultDateRangeStart ) ;
335+ if ( usesDefaultDateRange ) {
336+ const nextDefaultRange = getDefaultDateRange ( nextEventType , startOfToday ( ) ) ;
351337 setDateRange ( nextDefaultRange ) ;
352338 setDraftDateRange ( nextDefaultRange ) ;
353339 clearErrors ( "dates" , "weekdays" ) ;
0 commit comments