feat(SW-1493): Revised SAS comparison block * Base of new TierDetails for SAS tier comparison * Add backgrounds and content to TierDetails * Implement new cms schema for SasTierComparison * Override gap in jsontohtml styling to 0 * Add animations to comparison details * Redesign again * Update content model to new design * Add border to bottom item in tier match list * Wrap interpolate-size in @supports to be safe * Merge branch 'master' into feat/sw-1493-revised-comparison-block Approved-by: Joakim Jäderberg
42 lines
1.1 KiB
TypeScript
42 lines
1.1 KiB
TypeScript
import { z } from "zod"
|
|
|
|
import { citySchema } from "@/server/routers/hotels/schemas/city"
|
|
import { nearbyHotelsSchema } from "@/server/routers/hotels/schemas/hotel/include/nearbyHotels"
|
|
import { restaurantsSchema } from "@/server/routers/hotels/schemas/hotel/include/restaurants"
|
|
import {
|
|
roomCategoriesSchema,
|
|
transformRoomCategories,
|
|
} from "@/server/routers/hotels/schemas/hotel/include/roomCategories"
|
|
|
|
import {
|
|
additionalDataSchema,
|
|
transformAdditionalData,
|
|
} from "../../additionalData"
|
|
|
|
export const includeSchema = z
|
|
.discriminatedUnion("type", [
|
|
additionalDataSchema,
|
|
citySchema,
|
|
nearbyHotelsSchema,
|
|
restaurantsSchema,
|
|
roomCategoriesSchema,
|
|
])
|
|
.transform((data) => {
|
|
switch (data.type) {
|
|
case "additionalData":
|
|
return transformAdditionalData(data)
|
|
case "cities":
|
|
case "hotels":
|
|
case "restaurants":
|
|
return {
|
|
...data.attributes,
|
|
id: data.id,
|
|
type: data.type,
|
|
}
|
|
case "roomcategories":
|
|
return transformRoomCategories(data)
|
|
default:
|
|
return null
|
|
}
|
|
})
|