import { fetchComponentData, fetchCategoryData } from "@/utils/data"; /** * Product category sidebar component * @param {string} componentName - component name * @param {string} className - additional class names */ export default async function Category({ componentName = "Category", className = "", }) { // 1. 获取组件元数据 const metaRes = await fetchComponentData(componentName); const metaData = metaRes.data; // 如果按 componentName 未找到组件数据,或数据未有效配置分类,则不渲染组件 if (!metaData || !metaData.p1 || !metaData.p2) { return null; } // 2. 获取分类树 let data = { title: metaData.title || "Product Categories", subtitle: metaData.subtitle || "", slug: "", items: [], }; const catRes = await fetchCategoryData({ pagetype: metaData.p1, name: metaData.p2 }); const categoryData = catRes.data || {}; data = { ...data, slug: categoryData.slug, items: categoryData.children || [], }; // 渲染分类列表 const renderCategories = (items, parentSlugs = []) => { if (!items || !items.length) return null; return (