Merged in fix/SW-449-booking-widget-url-date (pull request #847)

fix(SW-449): Updated Date format to match current web

Approved-by: Niclas Edenvin
This commit is contained in:
Pontus Dreij
2024-11-08 14:14:33 +00:00
7 changed files with 16 additions and 20 deletions

View File

@@ -49,11 +49,11 @@ export default async function SelectRatePage({
searchParams.fromDate && searchParams.fromDate &&
dt(searchParams.fromDate).isAfter(dt().subtract(1, "day")) dt(searchParams.fromDate).isAfter(dt().subtract(1, "day"))
? searchParams.fromDate ? searchParams.fromDate
: dt().utc().format("YYYY-MM-DD") : dt().utc().format("YYYY-MM-D")
const validToDate = const validToDate =
searchParams.toDate && dt(searchParams.toDate).isAfter(validFromDate) searchParams.toDate && dt(searchParams.toDate).isAfter(validFromDate)
? searchParams.toDate ? searchParams.toDate
: dt().utc().add(1, "day").format("YYYY-MM-DD") : dt().utc().add(1, "day").format("YYYY-MM-D")
const adults = selectRoomParamsObject.room[0].adults || 1 // TODO: Handle multiple rooms const adults = selectRoomParamsObject.room[0].adults || 1 // TODO: Handle multiple rooms
const childrenCount = selectRoomParamsObject.room[0].child?.length const childrenCount = selectRoomParamsObject.room[0].child?.length
const children = selectRoomParamsObject.room[0].child const children = selectRoomParamsObject.room[0].child

View File

@@ -86,11 +86,11 @@ export default function BookingWidgetClient({
// UTC is required to handle requests from far away timezones https://scandichotels.atlassian.net/browse/SWAP-6375 & PET-507 // UTC is required to handle requests from far away timezones https://scandichotels.atlassian.net/browse/SWAP-6375 & PET-507
// This is specifically to handle timezones falling in different dates. // This is specifically to handle timezones falling in different dates.
fromDate: isDateParamValid fromDate: isDateParamValid
? bookingWidgetSearchData?.fromDate?.toString() ? dt(bookingWidgetSearchData?.fromDate).format("YYYY-M-D")
: dt().utc().format("YYYY-MM-DD"), : dt().utc().format("YYYY-M-D"),
toDate: isDateParamValid toDate: isDateParamValid
? bookingWidgetSearchData?.toDate?.toString() ? dt(bookingWidgetSearchData?.toDate).format("YYYY-M-D")
: dt().utc().add(1, "day").format("YYYY-MM-DD"), : dt().utc().add(1, "day").format("YYYY-M-D"),
}, },
bookingCode: "", bookingCode: "",
redemption: false, redemption: false,

View File

@@ -47,7 +47,7 @@ export default function DatePickerForm({ name = "date" }: DatePickerFormProps) {
if (!dt(selected).isBefore(dt(), "day")) { if (!dt(selected).isBefore(dt(), "day")) {
if (isSelectingFrom) { if (isSelectingFrom) {
setValue(name, { setValue(name, {
fromDate: dt(selected).format("YYYY-MM-DD"), fromDate: dt(selected).format("YYYY-MM-D"),
toDate: undefined, toDate: undefined,
}) })
setIsSelectingFrom(false) setIsSelectingFrom(false)
@@ -57,11 +57,11 @@ export default function DatePickerForm({ name = "date" }: DatePickerFormProps) {
if (toDate.isAfter(fromDate)) { if (toDate.isAfter(fromDate)) {
setValue(name, { setValue(name, {
fromDate: selectedDate.fromDate, fromDate: selectedDate.fromDate,
toDate: toDate.format("YYYY-MM-DD"), toDate: toDate.format("YYYY-MM-D"),
}) })
} else { } else {
setValue(name, { setValue(name, {
fromDate: toDate.format("YYYY-MM-DD"), fromDate: toDate.format("YYYY-MM-D"),
toDate: selectedDate.fromDate, toDate: selectedDate.fromDate,
}) })
} }
@@ -75,9 +75,7 @@ export default function DatePickerForm({ name = "date" }: DatePickerFormProps) {
if (!selectedDate.toDate) { if (!selectedDate.toDate) {
setValue(name, { setValue(name, {
fromDate: selectedDate.fromDate, fromDate: selectedDate.fromDate,
toDate: dt(selectedDate.fromDate) toDate: dt(selectedDate.fromDate).add(1, "day").format("YYYY-MM-D"),
.add(1, "day")
.format("YYYY-MM-DD"),
}) })
setIsSelectingFrom(true) setIsSelectingFrom(true)
} }

View File

@@ -25,8 +25,7 @@ export default function Form({ locations, type }: BookingWidgetFormProps) {
type, type,
}) })
const { formState, handleSubmit, register } = const { handleSubmit, register } = useFormContext<BookingWidgetSchema>()
useFormContext<BookingWidgetSchema>()
function onSubmit(data: BookingWidgetSchema) { function onSubmit(data: BookingWidgetSchema) {
const locationData: Location = JSON.parse(decodeURIComponent(data.location)) const locationData: Location = JSON.parse(decodeURIComponent(data.location))

View File

@@ -83,7 +83,7 @@ export default function DateSelect({ name, registerOptions = {} }: DateProps) {
.date(Number(day)) .date(Number(day))
if (newDate.isValid()) { if (newDate.isValid()) {
setValue(name, newDate.format("YYYY-MM-DD"), { setValue(name, newDate.format("YYYY-MM-D"), {
shouldDirty: true, shouldDirty: true,
shouldTouch: true, shouldTouch: true,
shouldValidate: true, shouldValidate: true,

View File

@@ -137,7 +137,7 @@ const nextConfig = {
{ {
key: "fromDate", key: "fromDate",
type: "query", type: "query",
value: "^([12]\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01]))$", value: "^([12]\\d{3}-(0[1-9]|1[0-2])-([1-9]|[12]\\d|3[01]))$",
}, },
], ],
permanent: false, permanent: false,
@@ -169,7 +169,7 @@ const nextConfig = {
{ {
key: "toDate", key: "toDate",
type: "query", type: "query",
value: "^([12]\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01]))$", value: "^([12]\\d{3}-(0[1-9]|1[0-2])-([1-9]|[12]\\d|3[01]))$",
}, },
], ],
permanent: false, permanent: false,

View File

@@ -974,11 +974,10 @@ export const hotelQueryRouter = router({
const { lang } = ctx const { lang } = ctx
const apiLang = toApiLang(lang) const apiLang = toApiLang(lang)
const params = { const params = {
Adults: input.adults, Adults: input.adults,
EndDate: dt(input.toDate).format("YYYY-MM-DD"), EndDate: dt(input.toDate).format("YYYY-MM-D"),
StartDate: dt(input.fromDate).format("YYYY-MM-DD"), StartDate: dt(input.fromDate).format("YYYY-MM-D"),
language: apiLang, language: apiLang,
} }