39 lines
1.0 KiB
TypeScript
39 lines
1.0 KiB
TypeScript
import type { ImageVaultAsset } from "@scandic-hotels/common/utils/imageVault"
|
|
import type { ApiImage } from "@scandic-hotels/trpc/types/hotel"
|
|
|
|
import type { GalleryImage } from "@/types/components/imageGallery"
|
|
|
|
function mapApiImageToGalleryImage(apiImage: ApiImage): GalleryImage {
|
|
return {
|
|
src: apiImage.src,
|
|
alt:
|
|
apiImage.altText ||
|
|
apiImage.altText_En ||
|
|
apiImage.title ||
|
|
apiImage.title_En,
|
|
caption: apiImage.title || apiImage.title_En,
|
|
}
|
|
}
|
|
|
|
export function mapApiImagesToGalleryImages(
|
|
apiImages: ApiImage[]
|
|
): GalleryImage[] {
|
|
return apiImages.map(mapApiImageToGalleryImage)
|
|
}
|
|
|
|
function mapImageVaultImageToGalleryImage(
|
|
imageVaultImage: ImageVaultAsset
|
|
): GalleryImage {
|
|
return {
|
|
src: imageVaultImage.url,
|
|
alt: imageVaultImage.meta.alt || imageVaultImage.meta.caption || "",
|
|
caption: imageVaultImage.meta.caption,
|
|
}
|
|
}
|
|
|
|
export function mapImageVaultImagesToGalleryImages(
|
|
imageVaultImages: ImageVaultAsset[]
|
|
): GalleryImage[] {
|
|
return imageVaultImages.map(mapImageVaultImageToGalleryImage)
|
|
}
|