Feat/SW-1521 image gallery lightbox * feat(SW-1453): added city listing component * feat(SW-1521): added more generic types to ImageGallery and Lightbox components * feat(SW-1521): added lightbox functionality for top images * feat(SW-1521): added support for setting activeIndex on open inside Lightbox Approved-by: Fredrik Thorsson Approved-by: Chuma Mcphoy (We Ahead)
35 lines
1.0 KiB
TypeScript
35 lines
1.0 KiB
TypeScript
import type { GalleryImage } from "@/types/components/imageGallery"
|
|
import type { ImageVaultAsset } from "@/types/components/imageVault"
|
|
import type { ApiImage } from "@/types/hotel"
|
|
|
|
function mapApiImageToGalleryImage(apiImage: ApiImage): GalleryImage {
|
|
return {
|
|
src: apiImage.imageSizes.medium,
|
|
alt: apiImage.metaData.altText || apiImage.metaData.title,
|
|
caption: apiImage.metaData.title,
|
|
smallSrc: apiImage.imageSizes.small,
|
|
}
|
|
}
|
|
|
|
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)
|
|
}
|