Feature/select rate vertical data flow * add fix from SW-2666 * use translations for room packages * move types to it's own file * Merge branch 'master' of bitbucket.org:scandic-swap/web into feature/select-rate-vertical-data-flow * merge * feature/select-rate: double rate for campaing rates * revert NODE_ENV check in Cookiebot script * revert testing values * fix(SW-3171): fix all filter selected in price details * fix(SW-3166): multiroom anchoring when changing filter * fix(SW-3172): check hotelType, show correct breakfast message * Merge branch 'feature/select-rate-vertical-data-flow' of bitbucket.org:scandic-swap/web into feature/select-rate-vertical-data-flow * fix: show special needs icons for subsequent roomTypes SW-3167 * fix: Display strike through text when logged in SW-3168 * fix: Reinstate the scrollToView behaviour when selecting a rate SW-3169 * merge * . * PR fixes * fix: don't return notFound() * . * always include defaults for room packages * merge * merge * merge * Remove floating h1 for new select-rate Approved-by: Anton Gunnarsson
56 lines
1.3 KiB
TypeScript
56 lines
1.3 KiB
TypeScript
import { dt } from "@scandic-hotels/common/dt"
|
|
|
|
import type { Dayjs } from "dayjs"
|
|
|
|
/**
|
|
* Get valid dates from stringFromDate and stringToDate making sure that they are not in the past and chronologically correct
|
|
* @example const { fromDate, toDate} = getValidDates("2021-01-01", "2021-01-02")
|
|
*/
|
|
export function getValidDates(
|
|
stringFromDate: string | undefined,
|
|
stringToDate: string | undefined
|
|
): { fromDate: Dayjs; toDate: Dayjs } {
|
|
const fromDate = getValidFromDate(stringFromDate)
|
|
const toDate = getValidToDate(stringToDate, fromDate)
|
|
|
|
return { fromDate, toDate }
|
|
}
|
|
|
|
/**
|
|
* Get valid fromDate from stringFromDate making sure that it is not in the past
|
|
*/
|
|
export function getValidFromDate(stringFromDate: string | undefined): Dayjs {
|
|
const now = dt().utc()
|
|
if (!stringFromDate) {
|
|
return now
|
|
}
|
|
const toDate = dt(stringFromDate)
|
|
|
|
const yesterday = now.subtract(1, "day")
|
|
if (!toDate.isAfter(yesterday)) {
|
|
return now
|
|
}
|
|
|
|
return toDate
|
|
}
|
|
|
|
/**
|
|
* Get valid toDate from stringToDate making sure that it is after fromDate
|
|
*/
|
|
export function getValidToDate(
|
|
stringToDate: string | undefined,
|
|
fromDate: Dayjs | Date
|
|
): Dayjs {
|
|
const tomorrow = dt().utc().add(1, "day")
|
|
if (!stringToDate) {
|
|
return tomorrow
|
|
}
|
|
|
|
const toDate = dt(stringToDate)
|
|
if (toDate.isAfter(fromDate)) {
|
|
return toDate
|
|
}
|
|
|
|
return tomorrow
|
|
}
|