30 lines
1.2 KiB
JavaScript
30 lines
1.2 KiB
JavaScript
import SwiperItemsUI from "./SwiperItemsUI";
|
|
import { fetchComponentData, fetchListViewData } from "@/utils/data";
|
|
|
|
export default async function SwiperItems(props) {
|
|
// 1. Fetch component settings from the CMS/backend using the centralized utility.
|
|
const { data: componentData } = await fetchComponentData("SwiperItems");
|
|
|
|
// If there are no settings, we can't proceed.
|
|
if (!componentData) {
|
|
return null;
|
|
}
|
|
|
|
// 2. Determine parameters for fetching the list of items, using props as a fallback.
|
|
const pagetype = componentData?.t1 || props.pagetype || "";
|
|
const category = componentData?.t2 || props.category || "";
|
|
const count = componentData?.t4 || props.count || 12;
|
|
|
|
let items = [];
|
|
// Only fetch items if a pagetype is defined.
|
|
if (pagetype) {
|
|
const { data: listViewData } = await fetchListViewData({ pagetype, category, count });
|
|
if (Array.isArray(listViewData)) {
|
|
items = listViewData;
|
|
}
|
|
}
|
|
|
|
// 3. Pass the server-fetched data to the client component for rendering.
|
|
// This component is now lean and only concerned with orchestrating data flow.
|
|
return <SwiperItemsUI data={componentData} items={items} {...props} />;
|
|
} |