Approved-by: Bianca Widstam Approved-by: Chuma Mcphoy (We Ahead) Approved-by: Matilda Landström
39 lines
963 B
TypeScript
39 lines
963 B
TypeScript
import { z } from "zod"
|
|
|
|
import { nullableStringValidator } from "@scandic-hotels/common/utils/zod/stringValidator"
|
|
|
|
const DEFAULT_IMAGE_OBJ = {
|
|
altText: "Default image",
|
|
altText_En: "Default image",
|
|
title: "Default image",
|
|
title_En: "Default image",
|
|
src: "https://placehold.co/1280x720",
|
|
}
|
|
|
|
export const imageSchema = z
|
|
.object({
|
|
imageSizes: z.object({
|
|
original: nullableStringValidator,
|
|
}),
|
|
metaData: z.object({
|
|
altText: nullableStringValidator,
|
|
altText_En: nullableStringValidator,
|
|
copyRight: nullableStringValidator,
|
|
title: nullableStringValidator,
|
|
title_En: nullableStringValidator,
|
|
}),
|
|
})
|
|
.nullish()
|
|
.transform((val) => {
|
|
if (!val) {
|
|
return DEFAULT_IMAGE_OBJ
|
|
}
|
|
return {
|
|
src: val.imageSizes.original,
|
|
altText: val.metaData.altText,
|
|
altText_En: val.metaData.altText_En,
|
|
title: val.metaData.title,
|
|
title_En: val.metaData.title_En,
|
|
}
|
|
})
|