Commit bdfdb72a by sujata

chnages

1 parent 570d3af3
# NEXT_PUBLIC_BACKEND_API_URL = http://localhost:1337
NEXT_PUBLIC_BACKEND_API_URL = https://api.advithconsulting.in
# NEXT_PUBLIC_BACKEND_API_URL = https://api.advithconsulting.in
NEXT_PUBLIC_BACKEND_API_URL = https://api.advith.io
import Image from "next/image";
import Link from "next/link";
import React from "react";
import { Col, Container, Row } from "react-bootstrap";
const CTABanner = ({cta}) => {
console.log(cta,"details")
return (
<>
<div className="free-quote-area ptb-50">
<div className="free-quote-inner">
<section className="section-title-download d-flex">
<Container>
<Row>
<Col md={6}>
<div className="download-content">
<span className="sub-title">{cta?.Subtitle}</span>
<h2>{cta?.Title}</h2>
<p>
{cta?.Description}
</p>
</div>
</Col>
<Col md={6} className="align-content-center text-center">
<div className="btn-1">
<Link href={cta?.CTA?.URL} className="default-btn-three">
{cta?.CTA?.text}
<i className="ri-arrow-right-line"></i>
</Link>
</div>
</Col>
</Row>
</Container>
</section>
<div className="shape6">
<Image
width={200}
height={250}
src="/images/shape/shape8.png"
className="shape11"
alt="image"
/>
</div>
</div>
</div>
</>
);
};
export default CTABanner;
import React from "react";
import Link from "next/link";
import { Container } from "react-bootstrap";
import Heading from "./Heading";
import Image from "next/image";
......@@ -78,8 +77,8 @@ const FunctionalAreas = ({functionarea}) => {
</p>
<div className="row align-items-center">
{functionarea.FunctionalAreas &&
functionarea.FunctionalAreas.map((service) => (
{functionarea &&
functionarea?.map((service) => (
<div className="col-lg-4 col-sm-6 col-md-6" key={service.id}>
<div className="single-services-item fuctional-areas border align-items-left">
<Image
......
import React from "react";
import Link from "next/link";
import { Swiper, SwiperSlide } from "swiper/react";
import { Pagination, Autoplay, Navigation } from "swiper/modules";
import Image from "next/image";
import { motion } from "framer-motion";
import { slideFromLeft } from "@/components/reuseables/variants";
import Heading from "@/components/reuseables/Heading";
import { Container } from "react-bootstrap";
import SwiperNav from "@/components/reuseables/SwiperNav";
import { cleanImage } from "@/layout/imageHandling";
const WhatWeDo = ({ service ,serviceheading }) => {
console.log(serviceheading, "serviceData");
return (
<>
<div className="services-area pt-100 pt-md-100 pb-5">
<Container>
<div className="section-title">
<span className="sub-title">Client Servicing</span>
<Heading el="h2" heading={serviceheading?.heading || "What we do?"} />
</div>
<p className="text-center">
{serviceheading?.Description || "At Advith Consulting, we harness our wealth of Knowledge and expertise, leveraging our People to deliver exceptional Client satisfaction."}
</p>
<div className="position-relative px-md-4 mt-md-5 mt-2">
<Swiper
spaceBetween={30}
centeredSlides={true}
navigation={{
nextEl: ".custom-swiper-button-next",
prevEl: ".custom-swiper-button-prev",
}}
pagination={{
clickable: true,
}}
breakpoints={{
0: {
slidesPerView: 1,
},
768: {
slidesPerView: 2,
},
1200: {
slidesPerView: 3,
},
}}
autoplay={{
delay: 8000,
// disableOnInteraction: true,
// pauseOnMouseEnter: true,
}}
loop={true}
modules={[Autoplay, Navigation]}
className="services-slides position-relative"
>
{service &&
service.map((service, index) => (
<SwiperSlide className="single-services-box" key={index}>
<motion.div
variants={slideFromLeft(0.5)}
initial={"hidden"}
whileInView={"show"}
viewport={{ once: false, amount: 0.4 }}
>
<div className="image">
<Link href={service?.CTA?.URL ? service?.CTA?.URL : "#"}>
<Image
src={cleanImage(service?.Image?.url)}
fill
alt={service?.Image?.alternativeText ? service?.Image?.alternativeText : "image"}
className="img-fluid image"
/>
</Link>
</div>
<div className="content">
<h3>
<Link href={service?.CTA?.URL ? service?.CTA?.URL : "#"}>{service?.Title}</Link>
</h3>
<p>{service?.Description}</p>
<Link href={service?.CTA?.URL ? service?.CTA?.URL : "#"} className="default-btn">
{service?.CTA?.text }
<i className="ri-arrow-right-line"></i>
</Link>
</div>
</motion.div>
</SwiperSlide>
))}
<Swiper pagination={{ clickable: true }} />
</Swiper>
<div className="cust_nav swiper-nav text-center mt-md-4 mt-2">
<SwiperNav />
</div>
</div>
</Container>
</div>
</>
);
};
export default WhatWeDo;
import React from "react";
import { Col, Container, Row } from "react-bootstrap";
import Heading from "@/components/reuseables/Heading";
const Content = ({ title,subtitle ,content}) => {
return (
<Container>
<Row className="align-items-center">
<Col lg={12} md={12}>
<div className="call-back-request-text">
<span className="sub-title">{subtitle}</span>
<Heading el="h2" heading={title} className="h2" />
<div className="content" dangerouslySetInnerHTML={{ __html: content}}/>
</div>
</Col>
</Row>
</Container>
);
};
export default Content;
......@@ -37,8 +37,8 @@ const KnowledgeData = [
},
];
const TechnicalExpertise = ({technicalexpertise}) => {
console.log(technicalexpertise,"technicalexpertise")
const TechnicalExpertise = ({ technicalexpertise }) => {
console.log(technicalexpertise, "technicalexpertise");
return (
<>
<div className="what-we-do-area pt-50 pb-50">
......@@ -63,14 +63,15 @@ const TechnicalExpertise = ({technicalexpertise}) => {
</Col>
<Col lg={6} md={12}>
<div className="what-we-do-content">
<span className="sub-title">{technicalexpertise?.Subtitle}</span>
<div className="what-we-do-content area-tab">
<Heading
el="h2"
heading={technicalexpertise?.SectionTitle}
className="h2"
/>
<span>
{technicalexpertise?.Subtitle}
</span>
<Tabs>
<TabList>
{technicalexpertise?.Technicallist.map((tab, index) => (
......
import React from "react";
import Link from "next/link";
import Image from "next/image";
import Heading from "@/components/reuseables/Heading";
import { motion } from "framer-motion";
import { fadeIn } from "@/components/reuseables/variants";
import { Col, Container, Row } from "react-bootstrap";
import { cleanImage } from "@/layout/imageHandling";
const overviewData = [
{
id: 1,
subtitle: "About Us",
title: "Welcome to Advith Consulting ",
paragraphs: [
"Welcome to Advith Consulting, a boutique finance consulting firm with over 40 years of excellence. Our core pillars—Knowledge, People, and Client Servicing—drive our success. We value our team’s unique contributions, fostering a collaborative environment that delivers tailored, innovative solutions. We build strong, lasting client relationships by understanding and exceeding their goals. Our commitment to business ethics and quality work has earned us a reputation for excellence and credibility. United by our values, we continue to deliver exceptional financial consulting services.",
],
linkText: "Know More",
linkUrl: "/contact",
imageSrc: "/images/people/welcome_advith.webp",
imageAlt: "image",
},
// Add more objects here if you have more content sections
];
const Overview = ({overview}) => {
console.log(overview?.Content,"overview")
return (
<>
<div className="what-we-do-area pt-100">
<Container>
{/* {overviewData.map((item) => ( */}
<Row className="align-items-center">
<Col lg={6} md={12}>
<div className="what-we-do-text">
<span className="sub-title">{overview?.Subtitle}</span>
<Heading el="h2" heading={overview?.Title} className="h2" />
<div
className="Content"
dangerouslySetInnerHTML={{ __html: overview?.Content }}
/>
{/* <p className="mb-3">{overview.Description}</p> */}
{/* <Link href={item.linkUrl} className="default-btn">
{item.linkText} <i className="ri-arrow-right-line"></i>
</Link> */}
</div>
</Col>
<Col lg={6} md={12}>
<div>
<motion.div
variants={fadeIn(0.4)}
initial={"hidden"}
whileInView={"show"}
viewport={{ once: false, amount: 0.2 }}
>
<Image
src={cleanImage(overview?.Image?.url)}
alt={
overview?.Overview?.Image?.alternativeText ||
"image"
}
fill
className="img-fluid image"
/>
</motion.div>
</div>
</Col>
</Row>
{/* ))} */}
</Container>
</div>
</>
);
};
export default Overview;
......@@ -54,14 +54,14 @@ const services = [
];
const ClientService = ({ service }) => {
// console.log(service, "serviceData");
console.log(service, "serviceData");
return (
<>
<div className="services-area pt-100 pt-md-100 pb-5">
<Container>
<div className="section-title">
<span className="sub-title">Client Servicing</span>
<Heading el="h2" heading="What we do?" />
<Heading el="h2" heading={service?.heading || "What we do?"} />
</div>
<p className="text-center">
At Advith Consulting, we harness our wealth of Knowledge and
......
import React from "react";
import Link from "next/link";
import Image from "next/image";
import Heading from "@/components/reuseables/Heading";
import { motion } from "framer-motion";
import { fadeIn } from "@/components/reuseables/variants";
import { Col, Container, Row } from "react-bootstrap";
import { cleanImage } from "@/layout/imageHandling";
const Finance = ({finance}) => {
console.log(finance,"PyramidofFinance")
return (
<>
<div className="what-we-do-area pt-50">
<Container>
{/* {overviewData.map((item) => ( */}
<Row className="align-items-center">
<Col lg={6} md={12}>
<div>
<motion.div
variants={fadeIn(0.4)}
initial={"hidden"}
whileInView={"show"}
viewport={{ once: false, amount: 0.2 }}
>
<Image
src={cleanImage(finance?.Image?.url)}
alt={
finance?.finance?.Image?.alternativeText ||
"image"
}
fill
className="img-fluid image"
/>
</motion.div>
</div>
</Col>
<Col lg={6} md={12}>
<div className="what-we-do-text">
<span className="sub-title">{finance?.Subtitle}</span>
<Heading el="h2" heading={finance?.Title} className="h2" />
<div
className="Content"
dangerouslySetInnerHTML={{ __html: finance?.Content }}
/>
{/* <p className="mb-3">{overview.Description}</p> */}
{/* <Link href={item.linkUrl} className="default-btn">
{item.linkText} <i className="ri-arrow-right-line"></i>
</Link> */}
</div>
</Col>
</Row>
{/* ))} */}
</Container>
</div>
</>
);
};
export default Finance;
import React from "react";
import Link from "next/link";
import Image from "next/image";
import Heading from "@/components/reuseables/Heading";
import { motion } from "framer-motion";
import { fadeIn } from "@/components/reuseables/variants";
import { Col, Container, Row } from "react-bootstrap";
import { cleanImage } from "@/layout/imageHandling";
const overviewData = [
{
id: 1,
subtitle: "About Us",
title: "Welcome to Advith Consulting ",
paragraphs: [
"Welcome to Advith Consulting, a boutique finance consulting firm with over 40 years of excellence. Our core pillars—Knowledge, People, and Client Servicing—drive our success. We value our team’s unique contributions, fostering a collaborative environment that delivers tailored, innovative solutions. We build strong, lasting client relationships by understanding and exceeding their goals. Our commitment to business ethics and quality work has earned us a reputation for excellence and credibility. United by our values, we continue to deliver exceptional financial consulting services.",
],
linkText: "Know More",
linkUrl: "/contact",
imageSrc: "/images/people/welcome_advith.webp",
imageAlt: "image",
},
// Add more objects here if you have more content sections
];
const Overview = ({overview}) => {
console.log(overview?.Content,"overview")
return (
<>
<div className="what-we-do-area pt-50">
<Container>
{/* {overviewData.map((item) => ( */}
<Row className="align-items-center">
<Col lg={12} md={12}>
<div className="what-we-do-text">
<span className="sub-title">{overview?.Subtitle}</span>
<Heading el="h2" heading={overview?.Title} className="h2" />
<div
className="Content"
dangerouslySetInnerHTML={{ __html: overview?.Content }}
/>
{/* <p className="mb-3">{overview.Description}</p> */}
<Link href={overview?.CTA?.URL ? overview?.CTA?.URL : "#"} className="default-btn">
{overview?.CTA?.text }<i className="ri-arrow-right-line"></i>
</Link>
</div>
</Col>
</Row>
{/* ))} */}
</Container>
</div>
</>
);
};
export default Overview;
......@@ -57,12 +57,12 @@ const Header = () => {
const clientServices = [
{
title: "Virtual Finance Office",
href: "/client-servicing/cfo",
href: "/client-servicing/virtual-finance-office",
items: [
{ name: "Virtual CFO Services", href: "/client-servicing/cfo" },
{ name: "Virtual FC Services", href: "/client-servicing/cfo" },
{ name: "Book Closures and Audit Support", href: "/client-servicing/cfo" },
{ name: "Accounting Payroll & Compliance", href: "/client-servicing/cfo" },
{ name: "Virtual CFO Services", href: "client-servicing/virtual-finance-office/virtual-cfo" },
{ name: "Virtual FC Services", href: "/client-servicing/virtual-finance-office/virtual-fc" },
{ name: "Book Closures and Audit Support", href: "/client-servicing/virtual-finance-office/book-closures-audit" },
{ name: "Accounting Payroll & Compliance", href: "/client-servicing/virtual-finance-office/apc" },
],
},
{
......@@ -70,8 +70,8 @@ const Header = () => {
href: "/client-servicing/ta",
items: [
{ name: "Transaction Advisory", href: "/client-servicing/ta" },
{ name: "Risk Advisory", href: "/client-servicing/ta" },
{ name: "Business Advisory", href: "/client-servicing/ta" },
{ name: "Risk Advisory", href: "/client-servicing/ra" },
{ name: "Business Advisory", href: "/client-servicing/ba" },
],
},
{
......
......@@ -9,7 +9,7 @@ const nextConfig = {
// },
{
protocol: "https",
hostname: "api.advithconsulting.in",
hostname: "api.advith.io",
},
],
},
......
import React from "react";
import PageBanner from "@/components/reuseables/PageBanner";
import CallBackRequest from "@/components/reuseables/CallBackRequest";
import { useEffect } from "react";
import { useDispatch, useSelector } from "react-redux";
import { fetchServiceList } from "@/redux/slices/clientservice";
import { cleanImage } from "@/layout/imageHandling";
import qs from "qs";
import axios from "axios";
import { fetchIndustryList } from "@/redux/slices/industryslice";
import { fetchFunctionArea } from "@/redux/slices/functionareaslice";
import ClientService from "@/container/Home/ClientService";
import ConversionCode from "@/components/reuseables/ConversionCode/ConversionCode";
import Overview from "@/container/VirtualOffice/Overview";
import WhatWeDo from "@/components/reuseables/WhatWeDo";
import PartnerSlider from "@/container/Home/PartnerSlider";
import CTABanner from "@/components/reuseables/CTABanner";
import Seo from "@/components/reuseables/Seo/Seo";
const ClientServicingPage = ({ AdvisoryPage, conversionData }) => {
// console.log(AdvisoryPage, "data1");
const banners = [
{
imageSrc: cleanImage(AdvisoryPage?.Banner?.Image?.url),
pageTitle: AdvisoryPage?.Banner?.Heading,
homePageUrl: "/",
homePageText: "Home",
activePageText: AdvisoryPage?.Banner?.Heading,
},
// Add more banners as needed
];
const serviceData = AdvisoryPage?.WeOffer;
const serviceheading = AdvisoryPage?.WeOfferHeading;
// const AdvisoryPage = AdvisoryPage?.Technicalexpertise;
const dispatch = useDispatch();
useEffect(() => {
// dispatch(fetchServiceList());
dispatch(fetchIndustryList());
dispatch(fetchFunctionArea());
}, []);
// const serviceData = useSelector((state) => state.servicelist.data);
// const IndustryData = useSelector((state) => state.industrylist.data);
// const FunctionArea = useSelector((state) => state.functionarea.data);
const CtaBanner = AdvisoryPage?.CTABanner;
// console.log(FunctionArea, "data")
const seo = AdvisoryPage?.seo;
const code = conversionData?.conversion;
const overview = AdvisoryPage?.Overview;
const Clientel = AdvisoryPage?.Clientel;
// console.log(Clientel, "technicalexpertise");
return (
<>
<Seo seo={seo} />
<PageBanner banners={banners} />
<ConversionCode code={code} />
<div className="ptb-100">
<Overview overview={overview} />
</div>
<WhatWeDo service={serviceData} serviceheading={serviceheading} />
<div className="ptb-100 bg-fafafa">
<PartnerSlider Clientel={Clientel} />
</div>
<CTABanner cta={CtaBanner} />
{/* <ClientService service={serviceData} /> */}
<CallBackRequest />
</>
);
};
export default ClientServicingPage;
export async function getServerSideProps() {
try {
const query1 = {
populate: [
"Banner",
"Banner.Image",
"Overview.CTA",
"WeOffer",
"WeOffer.Image",
"WeOffer.CTA",
"WeOfferHeading",
"CTABanner.CTA",
"Clientel.logos",
// "Technicalexpertise",
// "Technicalexpertise.Technicallist"
"seo",
"seo.metaImage",
"seo.schema",
],
};
const query2 = {
populate: ["conversion"],
};
const query1String = qs.stringify(query1, {
encodeValuesOnly: true,
});
const query12String = qs.stringify(query2, {
encodeValuesOnly: true,
});
const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/advisory-services-page?${query1String}`;
const endpoint2 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/google-manger?${query12String}`;
console.log(`Final url: ${endpoint1}`);
const [response1, response2] = await Promise.all([
axios.get(endpoint1),
axios.get(endpoint2),
]);
const AdvisoryPage = response1.data.data;
const conversionData = response2.data.data;
return {
props: { AdvisoryPage, conversionData },
};
} catch (error) {
console.log("Error", error);
}
}
......@@ -5,21 +5,16 @@ import Industries from "@/components/reuseables/Industries";
import CallBackRequest from "@/components/reuseables/CallBackRequest";
import { useEffect } from "react";
import { useDispatch, useSelector } from "react-redux";
import { fetchServiceList } from "@/redux/slices/clientservice";
import { cleanImage } from "@/layout/imageHandling";
import qs from "qs";
import axios from "axios";
import { fetchIndustryList } from "@/redux/slices/industryslice";
import { fetchFunctionArea } from "@/redux/slices/functionareaslice";
import TechnicalExpertise from "@/container/ClientServicing/ TechnicalExpertise";
import ClientService from "@/container/Home/ClientService";
import ConversionCode from "@/components/reuseables/ConversionCode/ConversionCode";
import WhatWeDo from "@/components/reuseables/WhatWeDo";
import Seo from "@/components/reuseables/Seo/Seo";
const ClientServicingPage = ({ ClientPage , conversionData }) => {
// console.log(ClientPage, "data1");
const ClientServicingPage = ({ ClientPage, conversionData }) => {
const banners = [
{
imageSrc: cleanImage(ClientPage?.Banner?.Image?.url),
......@@ -28,37 +23,27 @@ const ClientServicingPage = ({ ClientPage , conversionData }) => {
homePageText: "Home",
activePageText: ClientPage?.Banner?.Heading,
},
// Add more banners as needed
];
const technicalexpertise = ClientPage?.Technicalexpertise;
// console.log(technicalexpertise,"technicalexpertise")
const serviceHeading = ClientPage?.whatwedoheading;
const serviceData = ClientPage?.whatwedo;
const dispatch = useDispatch();
useEffect(() => {
dispatch(fetchServiceList());
dispatch(fetchIndustryList());
dispatch(fetchFunctionArea());
}, []);
const serviceData = useSelector((state) => state.servicelist.data)
const IndustryData = useSelector((state) => state.industrylist.data)
const FunctionArea = useSelector((state) => state.functionarea.data)
// console.log(FunctionArea, "data")
const IndustryData = useSelector((state) => state.industrylist.data);
const FunctionArea =ClientPage?.FunctionalAreas;
const seo = ClientPage?.seo;
const code = conversionData?.conversion;
return (
<>
<>
<Seo seo={seo} />
<PageBanner banners={banners} />
<ConversionCode code={code} />
<ClientService service={serviceData} />
{/* <OurService /> */}
<TechnicalExpertise technicalexpertise={technicalexpertise}/>
<FunctionalAreas functionarea={FunctionArea} />
<WhatWeDo service={serviceData} serviceheading={serviceHeading} />
<TechnicalExpertise technicalexpertise={technicalexpertise} />
<FunctionalAreas functionarea={FunctionArea} />
<Industries industry={IndustryData} />
<CallBackRequest />
</>
......@@ -66,17 +51,23 @@ const ClientServicingPage = ({ ClientPage , conversionData }) => {
};
export default ClientServicingPage;
export async function getServerSideProps() {
try {
const query1 = {
populate: [
"Banner",
"Banner.Image",
"Technicalexpertise",
"Technicalexpertise.Technicallist"
"Banner",
"Banner.Image",
"whatwedoheading",
"whatwedo",
"whatwedo.Image",
"whatwedo.CTA",
"FunctionalAreas",
"FunctionalAreas.Icon",
"Technicalexpertise",
"Technicalexpertise.Technicallist",
"seo",
"seo.metaImage",
"seo.schema",
],
};
......@@ -94,7 +85,7 @@ export async function getServerSideProps() {
const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/client-servicing?${query1String}`;
const endpoint2 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/google-manger?${query12String}`;
console.log(`Final url: ${endpoint1}`);
const [response1, response2] = await Promise.all([
......@@ -105,7 +96,7 @@ export async function getServerSideProps() {
const conversionData = response2.data.data;
return {
props: { ClientPage,conversionData },
props: { ClientPage, conversionData },
};
} catch (error) {
console.log("Error", error);
......
......@@ -9,6 +9,8 @@ import LeftSideImage from "@/container/Corpedia/LeftSideImage";
import RightSideImage from "@/container/Corpedia/RightSideImage";
import Seo from "@/components/reuseables/Seo/Seo";
import ConversionCode from "@/components/reuseables/ConversionCode/ConversionCode";
import Content from "@/components/reuseables/services/Content";
import CallBackRequest from "@/components/reuseables/CallBackRequest";
......@@ -42,7 +44,6 @@ const clientserviceapc = ({ apcpage ,conversionData }) => {
<>
<Seo seo={seo} />
<ConversionCode code={code} />
<PageBanner banners={banners} />
<div className="cfo-services-area ptb-100">
<section className="cfo-page">
......@@ -82,6 +83,14 @@ const clientserviceapc = ({ apcpage ,conversionData }) => {
data={section?.ElementList}
/>
);
case "dynamic-zone.text":
return (
<Content
title={section?.Heading}
subtitle={section?.Subtitle}
content={section?.Description}
/>
);
default:
return null;
}
......@@ -89,9 +98,10 @@ const clientserviceapc = ({ apcpage ,conversionData }) => {
</section>
</div>
<div className="ptb-100">
<div className="pb-100">
<Clientele partners={clientlogo} />
</div>
<CallBackRequest />
</>
);
};
......
......@@ -9,6 +9,7 @@ import LeftSideImage from "@/container/Corpedia/LeftSideImage";
import RightSideImage from "@/container/Corpedia/RightSideImage";
import Seo from "@/components/reuseables/Seo/Seo";
import ConversionCode from "@/components/reuseables/ConversionCode/ConversionCode";
import CallBackRequest from "@/components/reuseables/CallBackRequest";
// method one content
const bookclosures = ({ bookclosurepage ,conversionData }) => {
......@@ -23,7 +24,7 @@ const bookclosures = ({ bookclosurepage ,conversionData }) => {
},
];
const dynamicdata = bookclosurepage?.FCDeatils;
const dynamicdata = bookclosurepage?.BookClosureDetails;
// console.log("dynamicdata", dynamicdata);
const clientlogo = bookclosurepage?.Clientel;
......@@ -44,25 +45,25 @@ const bookclosures = ({ bookclosurepage ,conversionData }) => {
<section className="cfo-page">
{dynamicdata &&
dynamicdata?.map((section, index) => {
// console.log("section", section);
console.log("section", section);
switch (section.__component) {
case "dynamic-zone.about":
return (
<LeftSideImage
title={section?.Title}
subtitle={section?.Subtitle}
image={section?.Image}
content={section?.Content}
title={section?.Title}
subtitle={section?.Subtitle}
image={section?.Image}
content={section?.Content}
/>
);
case "dynamic-zone.background":
return (
<RightSideImage
title={section?.Title}
subtitle={section?.Subtitle}
image={section?.Image}
content={section?.Content}
/>
title={section?.Title}
subtitle={section?.Subtitle}
image={section?.Image}
content={section?.Content}
/>
);
case "dynamic-zone.element-one":
return (
......@@ -78,6 +79,7 @@ const bookclosures = ({ bookclosurepage ,conversionData }) => {
data={section?.ElementList}
/>
);
default:
return null;
}
......@@ -85,11 +87,12 @@ const bookclosures = ({ bookclosurepage ,conversionData }) => {
</section>
</div>
<div className="ptb-100">
<div className="pb-100">
<Clientele
partners={clientlogo}
/>
</div>
<CallBackRequest />
</>
);
};
......
......@@ -4,19 +4,21 @@ import Industries from "@/components/reuseables/Industries";
import CallBackRequest from "@/components/reuseables/CallBackRequest";
import { useEffect } from "react";
import { useDispatch, useSelector } from "react-redux";
import { fetchServiceList } from "@/redux/slices/clientservice";
import { cleanImage } from "@/layout/imageHandling";
import qs from "qs";
import axios from "axios";
import { fetchIndustryList } from "@/redux/slices/industryslice";
import { fetchFunctionArea } from "@/redux/slices/functionareaslice";
import TechnicalExpertise from "@/container/ClientServicing/ TechnicalExpertise";
import ClientService from "@/container/Home/ClientService";
import ConversionCode from "@/components/reuseables/ConversionCode/ConversionCode";
import FunctionalAreas from "@/components/reuseables/FunctionalAreas";
import LeftSideImage from "@/container/Corpedia/LeftSideImage";
import WhatWeDo from "@/components/reuseables/WhatWeDo";
import Overview from "@/container/VirtualOffice/Overview";
import Finance from "@/container/VirtualOffice/Finance";
import CTABanner from "@/components/reuseables/CTABanner";
import Seo from "@/components/reuseables/Seo/Seo";
import PartnerSlider from "@/container/Home/PartnerSlider";
import HomeBlog from "@/container/Home/HomeBlog";
import { fetchBlogList } from "@/redux/slices/bloglistslice";
const VirtualFinanceOfficePage = ({ ClientPage , conversionData ,title , }) => {
const VirtualFinanceOfficePage = ({ ClientPage, conversionData, title }) => {
// console.log(ClientPage, "data1");
const banners = [
{
......@@ -28,39 +30,48 @@ const VirtualFinanceOfficePage = ({ ClientPage , conversionData ,title , }) => {
},
];
const technicalexpertise = ClientPage?.Technicalexpertise;
// console.log(technicalexpertise,"technicalexpertise")
const overview = ClientPage?.Overview;
const PyramidofFinance = ClientPage?.PyramidofFinance
const serviceData = ClientPage?.whatwedo;
const CtaBanner = ClientPage?.CTABanner;
console.log(CtaBanner, "CTABanner");
const dispatch = useDispatch();
useEffect(() => {
dispatch(fetchServiceList());
// dispatch(fetchServiceList());
dispatch(fetchBlogList());
dispatch(fetchIndustryList());
dispatch(fetchFunctionArea());
// dispatch(fetchFunctionArea());
}, []);
const serviceData = useSelector((state) => state.servicelist.data)
const IndustryData = useSelector((state) => state.industrylist.data)
const FunctionArea = useSelector((state) => state.functionarea.data)
const blogData = useSelector((state) => state.bloglist.data);
const IndustryData = useSelector((state) => state.industrylist.data);
const seo = ClientPage?.seo;
const code = conversionData?.conversion;
const Clientel = ClientPage?.Clientel;
return (
<>
<>
<Seo seo={seo} />
<PageBanner banners={banners} />
<ConversionCode code={code} />
<LeftSideImage
title={title}
subtitle={Subtitle}
image={Image}
content={Content}
/>
<ClientService service={serviceData} />
<div className="ptb-100">
<Overview overview={overview} />
</div>
<WhatWeDo service={serviceData} />
<Finance finance={PyramidofFinance} />
<CTABanner cta={CtaBanner} />
{/* <OurService /> */}
<TechnicalExpertise technicalexpertise={technicalexpertise}/>
<FunctionalAreas functionarea={FunctionArea} />
{/* <TechnicalExpertise technicalexpertise={technicalexpertise} /> */}
{/* <FunctionalAreas functionarea={FunctionArea} /> */}
<div className="ptb-100 bg-fafafa">
<PartnerSlider Clientel={Clientel} />
</div>
<Industries industry={IndustryData} />
<HomeBlog data={blogData} />
<CallBackRequest />
</>
);
......@@ -68,19 +79,23 @@ const VirtualFinanceOfficePage = ({ ClientPage , conversionData ,title , }) => {
export default VirtualFinanceOfficePage;
export async function getServerSideProps() {
try {
const query1 = {
populate: [
"Banner",
"Banner.Image",
// "Technicalexpertise",
// "Technicalexpertise.Technicallist"
"seo",
"Banner",
"Banner.Image",
"whatwedo",
"whatwedo.Image",
"whatwedo.CTA",
"Overview",
"Overview.CTA",
"PyramidofFinance.Image",
"CTABanner.CTA",
"Clientel.logos",
"seo",
"seo.metaImage",
"seo.schema",
],
};
......@@ -98,7 +113,7 @@ export async function getServerSideProps() {
const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/virtual-finance-office-page?${query1String}`;
const endpoint2 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/google-manger?${query12String}`;
console.log(`Final url virtual finace: ${endpoint1}`);
const [response1, response2] = await Promise.all([
......@@ -109,7 +124,7 @@ export async function getServerSideProps() {
const conversionData = response2.data.data;
return {
props: { ClientPage,conversionData },
props: { ClientPage, conversionData },
};
} catch (error) {
console.log("Error", error);
......
......@@ -9,13 +9,11 @@ import LeftSideImage from "@/container/Corpedia/LeftSideImage";
import RightSideImage from "@/container/Corpedia/RightSideImage";
import Seo from "@/components/reuseables/Seo/Seo";
import ConversionCode from "@/components/reuseables/ConversionCode/ConversionCode";
import Content from "@/components/reuseables/services/Content";
// method one content
const clientservicecfo = ({ cfopage ,conversionData }) => {
const clientservicecfo = ({ cfopage, conversionData }) => {
// console.log(cfopage ,"cfopage")
const banners = [
{
......@@ -28,7 +26,7 @@ const clientservicecfo = ({ cfopage ,conversionData }) => {
];
const dynamicdata = cfopage?.CfoDeatils;
// console.log("dynamicdata", dynamicdata);
console.log("dynamicdata", dynamicdata);
const clientlogo = cfopage?.Clientel;
// console.log("clientlogo", clientlogo);
......@@ -42,31 +40,30 @@ const clientservicecfo = ({ cfopage ,conversionData }) => {
<>
<Seo seo={seo} />
<ConversionCode code={code} />
<PageBanner banners={banners} />
<div className="cfo-services-area ptb-100">
<section className="cfo-page">
{dynamicdata &&
dynamicdata?.map((section, index) => {
// console.log("section", section);
console.log("section", section);
switch (section.__component) {
case "dynamic-zone.about":
return (
<LeftSideImage
title={section?.Title}
subtitle={section?.Subtitle}
image={section?.Image}
content={section?.Content}
title={section?.Title}
subtitle={section?.Subtitle}
image={section?.Image}
content={section?.Content}
/>
);
case "dynamic-zone.background":
return (
<RightSideImage
title={section?.Title}
subtitle={section?.Subtitle}
image={section?.Image}
content={section?.Content}
/>
title={section?.Title}
subtitle={section?.Subtitle}
image={section?.Image}
content={section?.Content}
/>
);
case "dynamic-zone.element-one":
return (
......@@ -82,6 +79,14 @@ const clientservicecfo = ({ cfopage ,conversionData }) => {
data={section?.ElementList}
/>
);
case "dynamic-zone.text":
return (
<Content
title={section?.Heading}
subtitle={section?.Subtitle}
content={section?.Description}
/>
);
default:
return null;
}
......@@ -89,9 +94,10 @@ const clientservicecfo = ({ cfopage ,conversionData }) => {
</section>
</div>
<div className="ptb-100">
<div className="pb-100">
<Clientele partners={clientlogo} />
</div>
</>
);
};
......@@ -129,10 +135,9 @@ export async function getServerSideProps() {
const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/cfo-page?${query1String}`;
const endpoint2 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/google-manger?${query12String}`;
console.log(`Final url: ${endpoint1}`);
const [response1, response2] = await Promise.all([
axios.get(endpoint1),
axios.get(endpoint2),
......@@ -141,9 +146,8 @@ export async function getServerSideProps() {
const cfopage = response1.data.data;
const conversionData = response2.data.data;
return {
props: { cfopage ,conversionData },
props: { cfopage, conversionData },
};
} catch (error) {
console.log("Error", error);
......
......@@ -9,6 +9,7 @@ import LeftSideImage from "@/container/Corpedia/LeftSideImage";
import RightSideImage from "@/container/Corpedia/RightSideImage";
import Seo from "@/components/reuseables/Seo/Seo";
import ConversionCode from "@/components/reuseables/ConversionCode/ConversionCode";
import CallBackRequest from "@/components/reuseables/CallBackRequest";
......@@ -89,9 +90,10 @@ const clientservicefc = ({ fcpage ,conversionData }) => {
</section>
</div>
<div className="ptb-100">
<div className="pb-100" >
<Clientele partners={clientlogo} />
</div>
<CallBackRequest />
</>
);
};
......
......@@ -238,7 +238,7 @@ p:last-child {
.section-title .sub-title {
display: block;
margin-bottom: 12px;
/* margin-bottom: 12px; */
color: var(--mainColor);
font-size: 15px;
font-weight: 700;
......@@ -3347,10 +3347,10 @@ Free Quote Area CSS
z-index: 1;
background-color: var(--blackColor);
/* border-radius: 20px; */
padding-top: 100px;
padding-top: 50px;
padding-left: 50px;
padding-right: 50px;
padding-bottom: 75px;
padding-bottom: 50px;
}
.free-quote-inner .section-title h2 {
......@@ -3468,6 +3468,7 @@ Free Quote Area CSS
position: absolute;
top: 50%;
transform: translateY(-50%);
width: 100px;
}
.shape6 img {
......@@ -3687,7 +3688,7 @@ Call Back Request Area CSS
display: block;
margin-bottom: 10px;
color: var(--mainColor);
font-size: 15px;
font-size: 18px;
font-weight: 700;
}
......@@ -3700,6 +3701,7 @@ Call Back Request Area CSS
.call-back-request-text p {
margin-bottom: 0;
color: var(--blackColor);
text-align: justify;
}
.call-back-request-text .single-call-back-box {
......@@ -5754,8 +5756,8 @@ Page Title Area CSS
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
padding-top: 100px;
padding-bottom: 100px;
padding-top: 50px;
padding-bottom: 50px;
position: relative;
}
......@@ -8363,7 +8365,7 @@ ul.pagination.custom-pagination {
padding-bottom: 15px;
margin-left: auto;
margin-right: auto;
margin-bottom: 40px;
/* margin-bottom: 40px; */
color: #fff;
}
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!