Feat/BOOK-257 videoplayer with card

* feat(BOOK-257): Added VideoPlayer with card component
* feat(BOOK-257): Added queries and component for VideoCard block to Content and Collection pages
* fix(BOOK-257): Only setting object-fit: cover on the video if it is not fullscreen
* feat(BOOK-257): Added queries and component for VideoCard block to Startpage
* feat(BOOK-257): Added queries and component for Video block to content/collection/start page

Approved-by: Chuma Mcphoy (We Ahead)
This commit is contained in:
Erik Tiekstra
2025-12-12 06:34:32 +00:00
parent 5770147af4
commit 0597b09c08
31 changed files with 1226 additions and 52 deletions

View File

@@ -0,0 +1,13 @@
import { VideoPlayer } from "@scandic-hotels/design-system/VideoPlayer"
import type { VideoBlock } from "@scandic-hotels/trpc/types/blocks"
interface VideoBlockProps extends Pick<VideoBlock, "video"> {}
export function VideoBlock({ video }: VideoBlockProps) {
if (!video) {
return null
}
return <VideoPlayer {...video} />
}

View File

@@ -0,0 +1,13 @@
import { VideoWithCard } from "@scandic-hotels/design-system/VideoWithCard"
import type { VideoCard } from "@scandic-hotels/trpc/types/blocks"
interface VideoCardBlockProps extends Pick<VideoCard, "video_card"> {}
export function VideoCardBlock({ video_card }: VideoCardBlockProps) {
if (!video_card) {
return null
}
return <VideoWithCard {...video_card} />
}

View File

@@ -7,6 +7,8 @@ import DynamicContent from "@/components/Blocks/DynamicContent"
import ShortcutsList from "@/components/Blocks/ShortcutsList"
import TextCols from "@/components/Blocks/TextCols"
import UspGrid from "@/components/Blocks/UspGrid"
import { VideoBlock } from "@/components/Blocks/Video"
import { VideoCardBlock } from "@/components/Blocks/VideoCard"
import AccordionSection from "./Accordion"
import CardGallery from "./CardGallery"
@@ -105,6 +107,17 @@ export default function Blocks({ blocks }: BlocksProps) {
return <UspGrid usp_grid={block.usp_grid} />
case BlocksEnums.block.Essentials:
return <Essentials content={block.essentials} />
case BlocksEnums.block.VideoCard:
return (
<VideoCardBlock
video_card={block.video_card}
key={`${block.typename}-${idx}`}
/>
)
case BlocksEnums.block.Video:
return (
<VideoBlock video={block.video} key={`${block.typename}-${idx}`} />
)
default:
return null
}