"use client"; import React, { useEffect, useState } from "react"; import Image from "next/image"; import axios from "axios"; export default function Gallery({ componentName = "Gallery", className = "" }) { const [data, setData] = useState(null); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); useEffect(() => { async function fetchData() { try { setLoading(true); const res = await axios.get("/api/get-component-data", { params: { component_name: componentName }, }); setData(res.data.data); } catch (err) { setError(`Failed to fetch ${componentName} data`); } finally { setLoading(false); } } fetchData(); }, [componentName]); if (loading) return null; if (error) return null; if (!data) return null; const title = data.title || ""; const subtitle = data.subtitle || ""; const buttonText = data.button_text || "MORE"; const buttonLink = data.button_link || "#"; const items = Array.isArray(data.items) ? data.items : []; return (

{title}

{subtitle &&
{subtitle}
}
{buttonText}
{items.map((item, idx) => { const link = item.item_link || "#"; return ( {item.item_title
{item.item_icon && ( icon )}
{item.item_title || ""}
); })}
); }