Merge remote-tracking branch 'origin' into feature/tracking

This commit is contained in:
Linus Flood
2024-12-13 09:02:37 +01:00
329 changed files with 4494 additions and 1910 deletions

View File

@@ -1,8 +1,7 @@
import { Reward } from "@/server/routers/contentstack/reward/output"
import type { Reward } from "@/server/routers/contentstack/reward/output"
export interface Surprise extends Reward {
coupons: { couponCode?: string; expiresAt?: string }[]
id?: string
}
export interface SurprisesProps {

View File

@@ -0,0 +1,4 @@
export interface CountdownProps {
minutes?: number
seconds?: number
}

View File

@@ -10,6 +10,7 @@ export interface BookingWidgetFormProps {
export interface BookingWidgetFormContentProps {
locations: Locations
formId: string
onSubmit: () => void
}
export enum ActionType {

View File

@@ -19,6 +19,7 @@ export type FacilityCard = {
title: string
openInNewTab?: boolean
isExternal: boolean
scrollOnClick: boolean
}
heading: string
scriptedTopTitle: string

View File

@@ -1,8 +1,6 @@
import { ReactElement } from "react"
import { HotelData } from "../../hotelReservation/selectHotel/hotelCardListingProps"
import { HotelPin } from "../../hotelReservation/selectHotel/map"
import type { ReactElement } from "react"
import type { HotelPin } from "@/types/components/hotelReservation/selectHotel/map"
import type { Coordinates } from "@/types/components/maps/coordinates"
import type { PointOfInterest } from "@/types/hotel"
@@ -11,9 +9,8 @@ export interface InteractiveMapProps {
pointsOfInterest?: PointOfInterest[]
activePoi?: PointOfInterest["name"] | null
hotelPins?: HotelPin[]
activeHotelPin?: HotelPin["name"] | null
mapId: string
closeButton: ReactElement
onTilesLoaded?: () => void
onActivePoiChange?: (poi: PointOfInterest["name"] | null) => void
onActiveHotelPinChange?: (hotelPin: HotelPin["name"] | null) => void
}

View File

@@ -1,6 +1,5 @@
import { ProductType } from "@/server/routers/hotels/output"
import { Hotel } from "@/types/hotel"
import type { Hotel } from "@/types/hotel"
import type { ProductType } from "@/server/routers/hotels/output"
export enum HotelCardListingTypeEnum {
MapListing = "mapListing",
@@ -10,8 +9,6 @@ export enum HotelCardListingTypeEnum {
export type HotelCardListingProps = {
hotelData: HotelData[]
type?: HotelCardListingTypeEnum
activeCard?: string | null
onHotelCardHover?: (hotelName: string | null) => void
}
export type HotelData = {

View File

@@ -1,11 +1,10 @@
import {
HotelCardListingTypeEnum,
type HotelData,
} from "./hotelCardListingProps"
type
HotelCardListingTypeEnum, type HotelData} from "./hotelCardListingProps"
export type HotelCardProps = {
hotel: HotelData
type?: HotelCardListingTypeEnum
state?: "default" | "active"
onHotelCardHover?: (hotelName: string | null) => void
}

View File

@@ -1,19 +1,18 @@
import { z } from "zod"
import type { z } from "zod"
import {
import type { Coordinates } from "@/types/components/maps/coordinates"
import type { Location } from "@/types/trpc/routers/hotel/locations"
import type {
imageMetaDataSchema,
imageSizesSchema,
} from "@/server/routers/hotels/schemas/image"
import { HotelData } from "./hotelCardListingProps"
import { CategorizedFilters, Filter } from "./hotelFilters"
import type { Coordinates } from "@/types/components/maps/coordinates"
import type { Child } from "../../bookingWidget/guestsRoomsPicker"
import type { HotelData } from "./hotelCardListingProps"
import type { CategorizedFilters, Filter } from "./hotelFilters"
import type { SelectHotelSearchParams } from "./selectHotelSearchParams"
export interface HotelListingProps {
hotels: HotelData[]
activeHotelPin?: string | null
setActiveHotelPin: (hotelName: string | null) => void
}
export interface SelectHotelMapProps {
@@ -41,12 +40,11 @@ export type HotelPin = {
amenities: Filter[]
ratings: number | null
operaId: string
facilityIds: number[]
}
export interface HotelListingMapContentProps {
activeHotelPin?: HotelPin["name"] | null
hotelPins: HotelPin[]
onActiveHotelPinChange?: (pinName: string | null) => void
}
export interface HotelCardDialogProps {
@@ -57,6 +55,12 @@ export interface HotelCardDialogProps {
export interface HotelCardDialogListingProps {
hotels: HotelData[] | null
activeCard: string | null | undefined
onActiveCardChange: (hotelName: string | null) => void
}
export type SelectHotelMapContainerProps = {
city: Location
searchParams: SelectHotelSearchParams
adultsInRoom: number
childrenInRoom: string | undefined
child: Child[] | undefined
}

View File

@@ -1,4 +1,8 @@
import { CheckInData, Hotel, ParkingData } from "@/types/hotel"
import type { CheckInData, Hotel, ParkingData } from "@/types/hotel"
import type { Location } from "@/types/trpc/routers/hotel/locations"
import type { Lang } from "@/constants/languages"
import type { Child } from "../selectRate/selectRate"
import type { SelectHotelSearchParams } from "./selectHotelSearchParams"
export enum AvailabilityEnum {
Available = "Available",
@@ -35,3 +39,17 @@ export interface CheckInCheckOutProps {
export interface MeetingsAndConferencesProps {
meetingDescription: string
}
export interface SelectHotelProps {
city: Location
params: {
lang: Lang
}
reservationParams: {
selectHotelParams: URLSearchParams
searchParams: SelectHotelSearchParams
adultsParams: number
childrenParams: string | undefined
child: Child[] | undefined
}
}

View File

@@ -1,19 +1,18 @@
import { z } from "zod"
import type { z } from "zod"
import {
import type { RoomData } from "@/types/hotel"
import type {
packagePriceSchema,
RateDefinition,
RoomConfiguration,
} from "@/server/routers/hotels/output"
import { RoomPriceSchema } from "./flexibilityOption"
import type { RoomData } from "@/types/hotel"
import type { RoomPriceSchema } from "./flexibilityOption"
import type { RoomPackageCodes, RoomPackageData } from "./roomFilter"
import type { RateCode } from "./selectRate"
export type RoomCardProps = {
hotelId: string
hotelType: string | undefined
roomConfiguration: RoomConfiguration
rateDefinitions: RateDefinition[]
roomCategories: RoomData[]

View File

@@ -12,6 +12,7 @@ export interface RoomSelectionProps {
selectedPackages: RoomPackageCodes[]
setRateCode: React.Dispatch<React.SetStateAction<RateCode | undefined>>
rateSummary: Rate | null
hotelType: string | undefined
}
export interface SelectRateProps {
@@ -19,4 +20,5 @@ export interface SelectRateProps {
roomCategories: RoomData[]
user: SafeUser
availablePackages: RoomPackageData
hotelType: string | undefined
}

View File

@@ -0,0 +1,9 @@
import type { CurrencyEnum } from "@/types/enums/currency"
export interface SignupPromoProps {
memberPrice: {
amount: number
currency: CurrencyEnum
}
badgeContent?: string
}

View File

@@ -1,6 +1,6 @@
import { VariantProps } from "class-variance-authority"
import type { VariantProps } from "class-variance-authority"
import { iconVariants } from "@/components/Icons/variants"
import type { iconVariants } from "@/components/Icons/variants"
export interface IconProps
extends Omit<React.SVGAttributes<HTMLOrSVGElement>, "color">,
@@ -14,6 +14,7 @@ export enum IconName {
Airplane = "Airplane",
ArrowRight = "ArrowRight",
Bar = "Bar",
Bed = "Bed",
Biking = "Biking",
Business = "Business",
Calendar = "Calendar",
@@ -32,11 +33,15 @@ export enum IconName {
Close = "Close",
CloseLarge = "CloseLarge",
CoffeeAlt = "CoffeeAlt",
Coin = "Coin",
Concierge = "Concierge",
ConvenienceStore24h = "ConvenienceStore24h",
Cool = "Cool",
CroissantCoffeeEgg = "CroissantCoffeeEgg",
CrossCircle = "CrossCircle",
Cultural = "Cultural",
CutleryOne = "CutleryOne",
CutleryTwo = "CutleryTwo",
DoorOpen = "DoorOpen",
Dresser = "Dresser",
ElectricBike = "ElectricBike",
@@ -52,25 +57,32 @@ export enum IconName {
Gallery = "Gallery",
Garage = "Garage",
Gift = "Gift",
GiftOpen = "GiftOpen",
Globe = "Globe",
Golf = "Golf",
Groceries = "Groceries",
Hanger = "Hanger",
HangerAlt = "HangerAlt",
HandKey = "HandKey",
KidsMocktail = "KidsMocktail",
Heat = "Heat",
House = "House",
HotelNight = "HotelNight",
Image = "Image",
InfoCircle = "InfoCircle",
Instagram = "Instagram",
Kayaking = "Kayaking",
Kettle = "Kettle",
Kids = "Kids",
Lamp = "Lamp",
LaundryMachine = "LaundryMachine",
LocalBar = "LocalBar",
Location = "Location",
Lock = "Lock",
MagicWand = "MagicWand",
Map = "Map",
Minus = "Minus",
MoneyHand = "MoneyHand",
Museum = "Museum",
Nature = "Nature",
Nightlife = "Nightlife",
@@ -103,6 +115,7 @@ export enum IconName {
Tshirt = "Tshirt",
TshirtWash = "TshirtWash",
TvCasting = "TvCasting",
Voucher = "Voucher",
WarningTriangle = "WarningTriangle",
Wifi = "Wifi",
}

View File

@@ -1,8 +1,11 @@
import { z } from "zod"
import type { z } from "zod"
import { blocksSchema } from "@/server/routers/contentstack/accountPage/output"
import { DynamicContent } from "@/types/trpc/routers/contentstack/blocks"
import type { DynamicContent } from "@/types/trpc/routers/contentstack/blocks"
import type { blocksSchema } from "@/server/routers/contentstack/accountPage/output"
import type {
Reward,
RewardWithRedeem,
} from "@/server/routers/contentstack/reward/output"
export interface AccountPageContentProps
extends Pick<DynamicContent, "dynamic_content"> {}
@@ -18,3 +21,17 @@ type Content = z.output<typeof blocksSchema>
export type ContentProps = {
content: Content[]
}
export interface CurrentRewardsClientProps {
rewards: (Reward | RewardWithRedeem)[]
pageSize: number
showRedeem: boolean
}
export interface RedeemProps {
reward: RewardWithRedeem
}
export type RedeemModalState = "unmounted" | "hidden" | "visible"
export type RedeemStep = "initial" | "confirmation" | "redeemed"

View File

@@ -1,7 +1,6 @@
import { awardPointsVariants } from "@/components/Blocks/DynamicContent/Points/EarnAndBurn/AwardPoints/awardPointsVariants"
import type { VariantProps } from "class-variance-authority"
import type { awardPointsVariants } from "@/components/Blocks/DynamicContent/Points/EarnAndBurn/AwardPoints/awardPointsVariants"
import type { Lang } from "@/constants/languages"
import type { UserQueryRouter } from "../user"
@@ -31,19 +30,6 @@ export interface RowProps {
transaction: Transaction
}
export interface PaginationProps {
pageCount: number
isFetching: boolean
handlePageChange: (page: number) => void
currentPage: number
}
export interface PaginationButtonProps {
disabled: boolean
isActive?: boolean
handleClick: () => void
}
export interface AwardPointsProps extends Pick<Transaction, "awardPoints"> {}
export interface AwardPointsVariantProps

View File

@@ -0,0 +1,12 @@
export interface PaginationProps {
pageCount: number
isFetching?: boolean
handlePageChange: (page: number) => void
currentPage: number
}
export interface PaginationButtonProps {
disabled: boolean
isActive?: boolean
handleClick: () => void
}

View File

@@ -0,0 +1,6 @@
import type { IconProps } from "@/types/components/icon"
export interface RewardIconProps extends IconProps {
rewardId: string
size?: "small" | "medium" | "large"
}

View File

@@ -1,12 +1,12 @@
import { dialogVariants } from "@/components/Forms/BookingWidget/FormContent/Search/SearchList/Dialog/variants"
import type { VariantProps } from "class-variance-authority"
import type { PropGetters } from "downshift"
import type { dialogVariants } from "@/components/Forms/BookingWidget/FormContent/Search/SearchList/Dialog/variants"
import type { Location, Locations } from "../trpc/routers/hotel/locations"
export interface SearchProps {
locations: Locations
handlePressEnter: () => void
}
type HighlightedIndex = number | null