1- import { useState } from "react" ;
21import { ChevronDownIcon } from "lucide-react" ;
2+ import { useState } from "react" ;
33
44import { Button } from "@/components/ui/button" ;
55import { Calendar } from "@/components/ui/calendar" ;
@@ -61,11 +61,12 @@ export function DateField({
6161 value,
6262} : FieldProps ) {
6363 // Value can be an ISO string or old format object { date: string, offset: number }
64- const isoValue = typeof value === "string"
65- ? value
66- : ( value && typeof value === "object" && "date" in value )
67- ? ( value as { date : string } ) . date
68- : "" ;
64+ const isoValue =
65+ typeof value === "string"
66+ ? value
67+ : value && typeof value === "object" && "date" in value
68+ ? ( value as { date : string } ) . date
69+ : "" ;
6970
7071 // Timezone offset is for display/editing only (not persisted)
7172 const [ offset , setOffset ] = useState ( 0 ) ;
@@ -133,7 +134,9 @@ export function DateField({
133134 const [ hours , minutes , seconds ] = timeStr . split ( ":" ) . map ( Number ) ;
134135
135136 // Create a date in UTC with these components
136- const utcDate = new Date ( Date . UTC ( year , month , day , hours , minutes , seconds ) ) ;
137+ const utcDate = new Date (
138+ Date . UTC ( year , month , day , hours , minutes , seconds )
139+ ) ;
137140
138141 // Adjust for the GMT offset to get the actual UTC time
139142 // If offset is -5 (GMT-5), and user selects 14:00, that's 19:00 UTC
@@ -157,29 +160,33 @@ export function DateField({
157160 const [ hours , minutes , seconds = 0 ] = time . split ( ":" ) . map ( Number ) ;
158161
159162 // Get the date part - if no date is set yet, use today's date in the GMT offset
160- const dateInOffset = dateValue ? getOffsetTime ( dateValue ) : ( ( ) => {
161- const now = new Date ( ) ;
162- const offsetMs = offset * 60 * 60 * 1000 ;
163- const offsetNow = new Date ( now . getTime ( ) + offsetMs ) ;
164- return {
165- year : offsetNow . getUTCFullYear ( ) ,
166- month : offsetNow . getUTCMonth ( ) ,
167- day : offsetNow . getUTCDate ( ) ,
168- hours : offsetNow . getUTCHours ( ) ,
169- minutes : offsetNow . getUTCMinutes ( ) ,
170- seconds : offsetNow . getUTCSeconds ( ) ,
171- } ;
172- } ) ( ) ;
163+ const dateInOffset = dateValue
164+ ? getOffsetTime ( dateValue )
165+ : ( ( ) => {
166+ const now = new Date ( ) ;
167+ const offsetMs = offset * 60 * 60 * 1000 ;
168+ const offsetNow = new Date ( now . getTime ( ) + offsetMs ) ;
169+ return {
170+ year : offsetNow . getUTCFullYear ( ) ,
171+ month : offsetNow . getUTCMonth ( ) ,
172+ day : offsetNow . getUTCDate ( ) ,
173+ hours : offsetNow . getUTCHours ( ) ,
174+ minutes : offsetNow . getUTCMinutes ( ) ,
175+ seconds : offsetNow . getUTCSeconds ( ) ,
176+ } ;
177+ } ) ( ) ;
173178
174179 // Create UTC date representing the selected date/time in GMT offset
175- const utcDate = new Date ( Date . UTC (
176- dateInOffset . year ,
177- dateInOffset . month ,
178- dateInOffset . day ,
179- hours ,
180- minutes ,
181- seconds
182- ) ) ;
180+ const utcDate = new Date (
181+ Date . UTC (
182+ dateInOffset . year ,
183+ dateInOffset . month ,
184+ dateInOffset . day ,
185+ hours ,
186+ minutes ,
187+ seconds
188+ )
189+ ) ;
183190
184191 // Convert from GMT offset to UTC
185192 const offsetMs = offset * 60 * 60 * 1000 ;
0 commit comments