"use client"; import React, { memo } from "react"; import Image from "next/image"; import Button from "@/components/button/Button"; import { cls } from "@/lib/utils"; import { getButtonProps } from "@/lib/buttonUtils"; import { useTheme } from "@/providers/themeProvider/ThemeProvider"; import type { ButtonConfig } from "@/types/button"; import type { InvertedBackground } from "@/providers/themeProvider/config/constants"; type HeadingSegment = | { type: "text"; content: string } | { type: "image"; src: string; alt?: string }; interface InlineImageSplitTextAboutProps { heading: HeadingSegment[]; buttons?: ButtonConfig[]; useInvertedBackground: InvertedBackground; ariaLabel?: string; className?: string; containerClassName?: string; headingClassName?: string; imageWrapperClassName?: string; imageClassName?: string; buttonContainerClassName?: string; buttonClassName?: string; buttonTextClassName?: string; } const InlineImageSplitTextAbout = ({ heading, buttons, useInvertedBackground, ariaLabel = "About section", className = "", containerClassName = "", headingClassName = "", imageWrapperClassName = "", imageClassName = "", buttonContainerClassName = "", buttonClassName = "", buttonTextClassName = "", }: InlineImageSplitTextAboutProps) => { const theme = useTheme(); return (

{heading.map((segment, index) => { const imageIndex = heading .slice(0, index + 1) .filter(s => s.type === "image").length - 1; const element = segment.type === "text" ? ( {segment.content} ) : (
{segment.alt
); return ( {index > 0 && " "} {element} ); })}

{buttons && buttons.length > 0 && (
{buttons.slice(0, 2).map((button, index) => (
)}
); }; InlineImageSplitTextAbout.displayName = "InlineImageSplitTextAbout"; export default memo(InlineImageSplitTextAbout);