import Banner from "@/components/banner/Banner";
import Category from "@/components/sidebar/Category";
import Pagination1 from "@/components/common/Pagination1";
import { getSiteSettings } from "@/utils/siteSettings";
import ListPageTemplate from "@/components/common/ListPageTemplate";
import { notFound } from 'next/navigation';
const baseSlug = 'applications';
export const revalidate = 3600;
export async function generateMetadata({ params }) {
const slugArr = [baseSlug, ...(params.slug ? (Array.isArray(params.slug) ? params.slug : [params.slug]) : [])];
const res = await fetch(`${process.env.SITE_URL}/api/get-page-data`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ slug_list: slugArr })
});
const json = await res.json();
const { data, error, page_info } = json;
if (error) {
return {
title: error.title || 'Page Error',
description: error.message || '',
};
}
if (Array.isArray(data) && page_info) {
return {
title: page_info.meta_title || page_info.title || '',
description: page_info.meta_description || '',
};
}
return {
title: data?.meta_title || data?.title || '',
description: data?.meta_description || '',
};
}
export default async function Page({ params, searchParams }) {
const slugArr = [baseSlug, ...(params.slug ? (Array.isArray(params.slug) ? params.slug : [params.slug]) : [])];
const currentPage = Number(searchParams?.page) || 1;
const siteSettings = await getSiteSettings(process.env.SITE_URL);
const pageSize = Number(siteSettings.page_size) || 12;
const res = await fetch(`${process.env.SITE_URL}/api/get-page-data`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ slug_list: slugArr, page: currentPage, page_size: pageSize })
});
const result = await res.json();
const { data, error, total } = result;
if (error) {
notFound();
}
const bannerComponentName = 'Banner-' + baseSlug;
const categoryComponentName = 'Category-' + baseSlug;
if (Array.isArray(data)) {
const currentPath = '/' + [baseSlug, ...(params.slug ? (Array.isArray(params.slug) ? params.slug : [params.slug]) : [])].join('/');
const totalPages = Math.ceil((total || 0) / pageSize);
const listItems = data.map(item => ({
slug: item.slug,
title: item.title,
image: item.image || item.cover || item.img || '',
content: item.content || item.description || '',
}));
return (
<>