@@ -44,8 +44,14 @@ const ButtonGroup: React.FC<ButtonGroupProps> = ({ options, value, onChange, dis
4444}
4545
4646export function RequestLeave ( { remainingDays, submitLeaveRequest } : RequestLeaveProps ) {
47- const [ startDate , setStartDate ] = useState < Date | undefined > ( new Date ( ) )
48- const [ endDate , setEndDate ] = useState < Date | undefined > ( new Date ( ) )
47+ // Helper to create a UTC midnight date from the user's local date (year, month, day)
48+ // This preserves the user's selected day regardless of their timezone
49+ const setToMidnightUTC = ( date : Date ) => {
50+ return new Date ( Date . UTC ( date . getFullYear ( ) , date . getMonth ( ) , date . getDate ( ) , 0 , 0 , 0 , 0 ) )
51+ }
52+
53+ const [ startDate , setStartDate ] = useState < Date | undefined > ( ( ) => setToMidnightUTC ( new Date ( ) ) )
54+ const [ endDate , setEndDate ] = useState < Date | undefined > ( ( ) => setToMidnightUTC ( new Date ( ) ) )
4955 const [ leaveType , setLeaveType ] = useState ( 'Full Day' )
5056 const [ isMultipleDays , setIsMultipleDays ] = useState ( false )
5157 const [ totalDays , setTotalDays ] = useState ( 1 )
@@ -137,9 +143,12 @@ export function RequestLeave({ remainingDays, submitLeaveRequest }: RequestLeave
137143 mode = "single"
138144 selected = { startDate }
139145 onSelect = { ( date ) => {
140- setStartDate ( date )
141- if ( date && ( ! endDate || date > endDate ) ) {
142- setEndDate ( date )
146+ if ( date ) {
147+ const dateMidnight = setToMidnightUTC ( date )
148+ setStartDate ( dateMidnight )
149+ if ( ! endDate || date > endDate ) {
150+ setEndDate ( dateMidnight )
151+ }
143152 }
144153 } }
145154 initialFocus
@@ -166,7 +175,11 @@ export function RequestLeave({ remainingDays, submitLeaveRequest }: RequestLeave
166175 < Calendar
167176 mode = "single"
168177 selected = { endDate }
169- onSelect = { setEndDate }
178+ onSelect = { ( date ) => {
179+ if ( date ) {
180+ setEndDate ( setToMidnightUTC ( date ) )
181+ }
182+ } }
170183 disabled = { ( date ) => ( startDate ? date < startDate : false ) }
171184 initialFocus
172185 />
0 commit comments