"use client"; import React, { memo, useState, useEffect } from "react"; import TextBox from "@/components/Textbox"; import { Globe } from "@/components/shared/Globe"; import { cls } from "@/lib/utils"; import type { LucideIcon } from "lucide-react"; import type { ButtonConfig } from "@/types/button"; import type { COBEOptions } from "cobe"; interface HeroSplitGlobeProps { title: string; description: string; tag?: string; tagIcon?: LucideIcon; buttons?: ButtonConfig[]; globeConfig?: COBEOptions; ariaLabel?: string; imagePosition?: "left" | "right"; className?: string; containerClassName?: string; textBoxClassName?: string; titleClassName?: string; descriptionClassName?: string; tagClassName?: string; buttonContainerClassName?: string; buttonClassName?: string; buttonTextClassName?: string; globeWrapperClassName?: string; globeClassName?: string; } const HeroSplitGlobe = ({ title, description, tag, tagIcon, buttons, globeConfig, ariaLabel = "Hero section", imagePosition = "right", className = "", containerClassName = "", textBoxClassName = "", titleClassName = "", descriptionClassName = "", tagClassName = "", buttonContainerClassName = "", buttonClassName = "", buttonTextClassName = "", globeWrapperClassName = "", globeClassName = "", }: HeroSplitGlobeProps) => { const [isCentered, setIsCentered] = useState(false); useEffect(() => { const handleResize = () => { setIsCentered(window.innerWidth < 768); }; handleResize(); window.addEventListener("resize", handleResize); return () => window.removeEventListener("resize", handleResize); }, []); const globeContent = (
); return (
{imagePosition === "left" && globeContent}
{imagePosition === "right" && globeContent}
); }; HeroSplitGlobe.displayName = "HeroSplitGlobe"; export default memo(HeroSplitGlobe);