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