"use client"; import React, { memo } from "react"; import MediaContent from "@/components/shared/MediaContent"; import SvgTextLogo from "@/components/shared/SvgTextLogo/SvgTextLogo"; import TextAnimation from "@/components/text/TextAnimation"; import Button from "@/components/button/Button"; import { cls } from "@/lib/utils"; import { getButtonProps } from "@/lib/buttonUtils"; import { Plus } from "lucide-react"; import { useTheme } from "@/providers/themeProvider/ThemeProvider"; import type { ButtonConfig } from "@/types/button"; interface HeroLogoBillboardSplitProps { logoText: string; description: string; buttons: ButtonConfig[]; layoutOrder: "default" | "reverse"; imageSrc?: string; videoSrc?: string; imageAlt?: string; videoAriaLabel?: string; frameStyle?: "card" | "browser"; ariaLabel?: string; className?: string; containerClassName?: string; logoContainerClassName?: string; descriptionClassName?: string; buttonContainerClassName?: string; buttonClassName?: string; buttonTextClassName?: string; logoClassName?: string; mediaWrapperClassName?: string; imageClassName?: string; browserBarClassName?: string; addressBarClassName?: string; } const HeroLogoBillboardSplit = ({ logoText, description, buttons, layoutOrder, imageSrc, videoSrc, imageAlt = "", videoAriaLabel = "Hero video", frameStyle = "card", ariaLabel = "Hero section", className = "", containerClassName = "", logoContainerClassName = "", descriptionClassName = "", buttonContainerClassName = "", buttonClassName = "", buttonTextClassName = "", logoClassName = "", mediaWrapperClassName = "", imageClassName = "", browserBarClassName = "", addressBarClassName = "", }: HeroLogoBillboardSplitProps) => { const theme = useTheme(); const [isMobile, setIsMobile] = React.useState(false); React.useEffect(() => { const checkMobile = () => setIsMobile(window.innerWidth < 768); checkMobile(); window.addEventListener('resize', checkMobile); return () => window.removeEventListener('resize', checkMobile); }, []); const adjustHeightFactor = isMobile ? 1.0 : 0.8; return (
{buttons.slice(0, 2).map((button, index) => (
{frameStyle === "browser" ? (
) : (
)}
); }; HeroLogoBillboardSplit.displayName = "HeroLogoBillboardSplit"; export default memo(HeroLogoBillboardSplit);