Timeslot selectable times fix for not UTC timezones in Availability (#1721)
* --wip * fix for event type availability tz mismatch * cleanup Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									00a79bdaba
								
							
						
					
					
						commit
						447def5849
					
				
					 2 changed files with 18 additions and 10 deletions
				
			
		|  | @ -73,9 +73,17 @@ export const Scheduler = ({ availability, setAvailability, timeZone, setTimeZone | ||||||
|           className="px-3 py-2 text-sm rounded-sm bg-neutral-100" |           className="px-3 py-2 text-sm rounded-sm bg-neutral-100" | ||||||
|           type="button" |           type="button" | ||||||
|           onClick={() => setEditSchedule(idx)}> |           onClick={() => setEditSchedule(idx)}> | ||||||
|           {item.startTime.toLocaleTimeString(i18n.language, { hour: "numeric", minute: "2-digit" })} |           {item.startTime.toLocaleTimeString(i18n.language, { | ||||||
|  |             hour: "numeric", | ||||||
|  |             minute: "2-digit", | ||||||
|  |             timeZone: "UTC", | ||||||
|  |           })} | ||||||
|            {t("until")}  |            {t("until")}  | ||||||
|           {item.endTime.toLocaleTimeString(i18n.language, { hour: "numeric", minute: "2-digit" })} |           {item.endTime.toLocaleTimeString(i18n.language, { | ||||||
|  |             hour: "numeric", | ||||||
|  |             minute: "2-digit", | ||||||
|  |             timeZone: "UTC", | ||||||
|  |           })} | ||||||
|         </button> |         </button> | ||||||
|       </div> |       </div> | ||||||
|       <button |       <button | ||||||
|  | @ -118,24 +126,24 @@ export const Scheduler = ({ availability, setAvailability, timeZone, setTimeZone | ||||||
|         <SetTimesModal |         <SetTimesModal | ||||||
|           startTime={ |           startTime={ | ||||||
|             openingHours[editSchedule] |             openingHours[editSchedule] | ||||||
|               ? new Date(openingHours[editSchedule].startTime).getHours() * 60 + |               ? new Date(openingHours[editSchedule].startTime).getUTCHours() * 60 + | ||||||
|                 new Date(openingHours[editSchedule].startTime).getMinutes() |                 new Date(openingHours[editSchedule].startTime).getUTCMinutes() | ||||||
|               : 540 |               : 540 | ||||||
|           } |           } | ||||||
|           endTime={ |           endTime={ | ||||||
|             openingHours[editSchedule] |             openingHours[editSchedule] | ||||||
|               ? new Date(openingHours[editSchedule].endTime).getHours() * 60 + |               ? new Date(openingHours[editSchedule].endTime).getUTCHours() * 60 + | ||||||
|                 new Date(openingHours[editSchedule].endTime).getMinutes() |                 new Date(openingHours[editSchedule].endTime).getUTCMinutes() | ||||||
|               : 1020 |               : 1020 | ||||||
|           } |           } | ||||||
|           onChange={(times: { startTime: number; endTime: number }) => |           onChange={(times: { startTime: number; endTime: number }) => | ||||||
|             applyEditSchedule({ |             applyEditSchedule({ | ||||||
|               ...(openingHours[editSchedule] || {}), |               ...(openingHours[editSchedule] || {}), | ||||||
|               startTime: new Date( |               startTime: new Date( | ||||||
|                 new Date().setHours(Math.floor(times.startTime / 60), times.startTime % 60, 0, 0) |                 new Date().setUTCHours(Math.floor(times.startTime / 60), times.startTime % 60, 0, 0) | ||||||
|               ), |               ), | ||||||
|               endTime: new Date( |               endTime: new Date( | ||||||
|                 new Date().setHours(Math.floor(times.endTime / 60), times.endTime % 60, 0, 0) |                 new Date().setUTCHours(Math.floor(times.endTime / 60), times.endTime % 60, 0, 0) | ||||||
|               ), |               ), | ||||||
|             }) |             }) | ||||||
|           } |           } | ||||||
|  |  | ||||||
|  | @ -24,8 +24,8 @@ const increment = 15; | ||||||
|  * 23:45:00 (End of day with enough time for 15 min booking) |  * 23:45:00 (End of day with enough time for 15 min booking) | ||||||
|  */ |  */ | ||||||
| const TIMES = (() => { | const TIMES = (() => { | ||||||
|   const end = dayjs().endOf("day"); |   const end = dayjs().utc().endOf("day"); | ||||||
|   let t: Dayjs = dayjs().startOf("day"); |   let t: Dayjs = dayjs().utc().startOf("day"); | ||||||
| 
 | 
 | ||||||
|   const times = []; |   const times = []; | ||||||
|   while (t.isBefore(end)) { |   while (t.isBefore(end)) { | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Syed Ali Shahbaz
						Syed Ali Shahbaz