import clsx from 'clsx'; import { VideoPlayer } from '@/components/shared/VideoPlayer'; import { GlowBg } from '@/components/shared/ui/glow-bg'; /** * A component meant to be used in the landing page. * It displays a title, description and video of a product's feature. * * The video could either be left, right or center (larger). * The section can have a background or not. */ export const LandingProductVideoFeature = ({ children, className, innerClassName, title, titleComponent, description, descriptionComponent, leadingComponent, textPosition = 'left', videoSrc, videoPoster, videoPosition = 'right', videoMaxWidth = 'none', autoPlay, muted = true, controls = false, loop = false, zoomOnHover = false, minHeight = 350, withBackground = false, withBackgroundGlow = false, variant = 'primary', backgroundGlowVariant, effectComponent, effectClassName, }: { children?: React.ReactNode; className?: string; innerClassName?: string; title?: string | React.ReactNode; titleComponent?: React.ReactNode; description?: string | React.ReactNode; descriptionComponent?: React.ReactNode; leadingComponent?: React.ReactNode; textPosition?: 'center' | 'left'; videoSrc?: string; videoPoster?: string; videoPosition?: 'left' | 'right' | 'center'; videoMaxWidth?: string; autoPlay?: boolean; muted?: boolean; controls?: boolean; loop?: boolean; zoomOnHover?: boolean; minHeight?: number; withBackground?: boolean; withBackgroundGlow?: boolean; variant?: 'primary' | 'secondary'; backgroundGlowVariant?: 'primary' | 'secondary'; effectComponent?: React.ReactNode; effectClassName?: string; }) => { return (
{effectComponent ? (
{effectComponent}
) : null}
{leadingComponent} {title ? (

{title}

) : ( titleComponent )} {description ? (

{description}

) : ( descriptionComponent )} {children}
{withBackgroundGlow ? (
) : null} {videoSrc ? ( <> {videoPosition === 'center' ? (
) : null} {videoPosition === 'left' || videoPosition === 'right' ? ( ) : null} ) : null}
); };