Commit 3d94bca9 by Pradeep Kumar

budgetpanorama page

1 parent a6251c07
...@@ -90,7 +90,7 @@ import ConversionCode from "@/components/reuseables/ConversionCode/ConversionCod ...@@ -90,7 +90,7 @@ import ConversionCode from "@/components/reuseables/ConversionCode/ConversionCod
// }, // },
// ]; // ];
const BudgetPanorama = ({ BudgetData , conversionData }) => { const BudgetPanorama = ({ BudgetData, conversionData }) => {
const banners = [ const banners = [
{ {
imageSrc: cleanImage(BudgetData?.Banner?.Image?.url), imageSrc: cleanImage(BudgetData?.Banner?.Image?.url),
...@@ -108,11 +108,27 @@ const BudgetPanorama = ({ BudgetData , conversionData }) => { ...@@ -108,11 +108,27 @@ const BudgetPanorama = ({ BudgetData , conversionData }) => {
const budgetlist = useSelector((state) => state.budgetlist.data); const budgetlist = useSelector((state) => state.budgetlist.data);
// Extract year from title
const getYearFromTitle = (title) => {
const match = title?.match(/\b(19|20)\d{2}\b/); // Matches 4 digit year
return match ? parseInt(match[0], 10) : 0;
};
// Sort in descending order based on extracted year
const sortedBudgetList = budgetlist
? [...budgetlist].sort((a, b) => {
return getYearFromTitle(b?.Title) - getYearFromTitle(a?.Title);
})
: [];
// Pagination setup // Pagination setup
const [currentPage, setCurrentPage] = useState(1); // Start at page 1 const [currentPage, setCurrentPage] = useState(1); // Start at page 1
const postsPerPage = 6; // Number of items per page const postsPerPage = 6; // Number of items per page
const offset = (currentPage - 1) * postsPerPage; // Calculate offset const offset = (currentPage - 1) * postsPerPage; // Calculate offset
const currentItems = budgetlist?.slice(offset, offset + postsPerPage); const currentItems = sortedBudgetList?.slice(offset, offset + postsPerPage);
const code = conversionData?.conversion; const code = conversionData?.conversion;
// Handle page click // Handle page click
...@@ -121,7 +137,7 @@ const BudgetPanorama = ({ BudgetData , conversionData }) => { ...@@ -121,7 +137,7 @@ const BudgetPanorama = ({ BudgetData , conversionData }) => {
}; };
const seo = BudgetData?.seo; const seo = BudgetData?.seo;
console.log(seo); console.log(currentItems);
return ( return (
<> <>
<Seo seo={seo} /> <Seo seo={seo} />
...@@ -130,11 +146,12 @@ const BudgetPanorama = ({ BudgetData , conversionData }) => { ...@@ -130,11 +146,12 @@ const BudgetPanorama = ({ BudgetData , conversionData }) => {
<div className="budget-panorama-page-area pt-70 pb-100 bg-light"> <div className="budget-panorama-page-area pt-70 pb-100 bg-light">
<Container> <Container>
<div className="section-title"> <div className="section-title">
<Heading heading={BudgetData?.Heading?.Title} el="h2" className="primary-text"/> <Heading heading={BudgetData?.Heading?.Title} el="h2" className="primary-text" />
</div> </div>
<p className="text-center mb-3 mb-lg-5">
{BudgetData?.Heading?.Description} <div className="text-center mb-3 mb-lg-5" dangerouslySetInnerHTML={{ __html: BudgetData?.Heading?.Description }} />
</p>
<Row className="align-items-center"> <Row className="align-items-center">
{currentItems && {currentItems &&
currentItems.map((service, index) => ( currentItems.map((service, index) => (
...@@ -162,10 +179,9 @@ const BudgetPanorama = ({ BudgetData , conversionData }) => { ...@@ -162,10 +179,9 @@ const BudgetPanorama = ({ BudgetData , conversionData }) => {
<Link <Link
href={ href={
service?.slug?.endsWith(".pdf") service?.slug?.endsWith(".pdf")
? `https://api.advith.io/uploads/${service.slug}` ? `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/uploads/${service.slug}`
: `/budgetpanorama/${ : `/budgetpanorama/${service?.slug ? service.slug : "#"
service?.slug ? service.slug : "#" }`
}`
} }
target={ target={
service?.slug?.endsWith(".pdf") service?.slug?.endsWith(".pdf")
...@@ -188,10 +204,9 @@ const BudgetPanorama = ({ BudgetData , conversionData }) => { ...@@ -188,10 +204,9 @@ const BudgetPanorama = ({ BudgetData , conversionData }) => {
<Link <Link
href={ href={
service?.slug?.endsWith(".pdf") service?.slug?.endsWith(".pdf")
? `https://api.advith.io/uploads/${service.slug}` ? `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/uploads/${service.slug}`
: `/budgetpanorama/${ : `/budgetpanorama/${service?.slug ? service.slug : "#"
service?.slug ? service.slug : "#" }`
}`
} }
target={ target={
service?.slug?.endsWith(".pdf") ? "_blank" : "_self" service?.slug?.endsWith(".pdf") ? "_blank" : "_self"
...@@ -274,7 +289,7 @@ export async function getServerSideProps() { ...@@ -274,7 +289,7 @@ export async function getServerSideProps() {
const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/budget-page?${query1String}`; const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/budget-page?${query1String}`;
const endpoint2 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/google-manger?${query12String}`; const endpoint2 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/google-manger?${query12String}`;
// console.log(`Final url: ${endpoint1}`); // console.log(`Final url: ${endpoint1}`);
const [response1, response2] = await Promise.all([ const [response1, response2] = await Promise.all([
...@@ -286,7 +301,7 @@ export async function getServerSideProps() { ...@@ -286,7 +301,7 @@ export async function getServerSideProps() {
const conversionData = response2.data.data; const conversionData = response2.data.data;
return { return {
props: { BudgetData,conversionData }, props: { BudgetData, conversionData },
}; };
} catch (error) { } catch (error) {
console.log("Error", error); console.log("Error", error);
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!