Commit 0355b81b by sujata

add converstion code section every page

1 parent 42714e9b
...@@ -2,25 +2,27 @@ import React from "react"; ...@@ -2,25 +2,27 @@ import React from "react";
import Head from "next/head"; import Head from "next/head";
const ConversionCode = ({ code }) => { const ConversionCode = ({ code }) => {
console.log(code, "Full code data");
return ( return (
<> <>
<Head> <Head>
{code?.scriptcode ? ( {code?.map((code, index) => (
<script <React.Fragment key={code.id}>
dangerouslySetInnerHTML={{ {code?.scriptcode ? (
__html: code.scriptcode, <script
}} dangerouslySetInnerHTML={{
/> __html: code.scriptcode,
) : ( }}
<noscript />
dangerouslySetInnerHTML={{ ) : (
__html: code.noscriptcode, <noscript
}} dangerouslySetInnerHTML={{
/> __html: code.noscriptcode,
)} }}
</Head> />
)}
</React.Fragment>
))}
</Head>
</> </>
); );
}; };
......
...@@ -75,7 +75,7 @@ const HomeBlog = ({ data }) => { ...@@ -75,7 +75,7 @@ const HomeBlog = ({ data }) => {
> >
<div className="single-blog-post"> <div className="single-blog-post">
<div className="post-image"> <div className="post-image">
<Link href={post?.slug} className="d-block"> <Link href={`/blog/${post?.slug}`} className="d-block">
<Image <Image
layout="fill" layout="fill"
src={cleanImage(post?.ThumbnailImage?.url)} src={cleanImage(post?.ThumbnailImage?.url)}
...@@ -95,7 +95,7 @@ const HomeBlog = ({ data }) => { ...@@ -95,7 +95,7 @@ const HomeBlog = ({ data }) => {
</li> </li>
</ul> </ul>
<h3> <h3>
<Link href={post?.slug}>{post.Title}</Link> <Link href={`/blog/${post?.slug}`}>{post.Title}</Link>
</h3> </h3>
<p>{post?.shortDescription}</p> <p>{post?.shortDescription}</p>
......
...@@ -6,32 +6,32 @@ import { motion } from "framer-motion"; ...@@ -6,32 +6,32 @@ import { motion } from "framer-motion";
import { slideFromLeft } from "@/components/reuseables/variants"; import { slideFromLeft } from "@/components/reuseables/variants";
import Image from "next/image"; import Image from "next/image";
import { cleanImage } from "@/layout/imageHandling"; import { cleanImage } from "@/layout/imageHandling";
const services = [ // const services = [
{ // {
id: 1, // id: 1,
serviceTitle: "Mismatch in year of taxation of Income and TDS Credit – Form 71 to the relief", // serviceTitle: "Mismatch in year of taxation of Income and TDS Credit – Form 71 to the relief",
serviceShortDescription: "The Income Tax Law in India requires that income from a particular assessment year be subjected to tax in that assessment year.", // serviceShortDescription: "The Income Tax Law in India requires that income from a particular assessment year be subjected to tax in that assessment year.",
serviceDetailsUrl: "/services/details", // serviceDetailsUrl: "/services/details",
date: "21 Sep 2023", // date: "21 Sep 2023",
pdfUrl: "/images/knoweledge/pdf/taxwire/Mismatch_in_year_of_taxation_of_Income_and_TDS_Credit_–_Form_71_to_the_relief.pdf", // pdfUrl: "/images/knoweledge/pdf/taxwire/Mismatch_in_year_of_taxation_of_Income_and_TDS_Credit_–_Form_71_to_the_relief.pdf",
}, // },
{ // {
id: 2, // id: 2,
serviceTitle: "GST on Renting of residential property to registered person", // serviceTitle: "GST on Renting of residential property to registered person",
serviceShortDescription: "For more than 15 years, renting of property has been covered under either service taxor Goods and Service Tax (GST). Broadly,the Government’s intention seemed clear –tax commercial rentals and exemptresidential rentals. ", // serviceShortDescription: "For more than 15 years, renting of property has been covered under either service taxor Goods and Service Tax (GST). Broadly,the Government’s intention seemed clear –tax commercial rentals and exemptresidential rentals. ",
serviceDetailsUrl: "/services/details", // serviceDetailsUrl: "/services/details",
date: "04 Aug 2022", // date: "04 Aug 2022",
pdfUrl: "/images/knoweledge/pdf/taxwire/GST_on_Renting_of_residential_property_to_registered_person.pdf", // pdfUrl: "/images/knoweledge/pdf/taxwire/GST_on_Renting_of_residential_property_to_registered_person.pdf",
}, // },
{ // {
id: 3, // id: 3,
serviceTitle: "Remission of Duties and Taxes on Exported Products (RoDTEP)", // serviceTitle: "Remission of Duties and Taxes on Exported Products (RoDTEP)",
serviceShortDescription: "RoDTEP rates and scheme details have been announced by the Ministry of Commerce and Industry by making suitable amendments to chapter 4 of the Foreign Trade Policy (FTP) in the notification (19/2015-2020) dated 17th August 2021.", // serviceShortDescription: "RoDTEP rates and scheme details have been announced by the Ministry of Commerce and Industry by making suitable amendments to chapter 4 of the Foreign Trade Policy (FTP) in the notification (19/2015-2020) dated 17th August 2021.",
serviceDetailsUrl: "/services/details", // serviceDetailsUrl: "/services/details",
date: "25 Aug 2021", // date: "25 Aug 2021",
pdfUrl: "/images/knoweledge/pdf/taxwire/Remission_of_Duties_and_Taxes_on_Exported_Products_(RoDTEP).pdf", // pdfUrl: "/images/knoweledge/pdf/taxwire/Remission_of_Duties_and_Taxes_on_Exported_Products_(RoDTEP).pdf",
}, // },
]; // ];
const TaxWire = ({taxWire , taxwirelist}) => { const TaxWire = ({taxWire , taxwirelist}) => {
const taxwirelistlatest = taxwirelist.slice(0, 3); const taxwirelistlatest = taxwirelist.slice(0, 3);
......
...@@ -54,41 +54,35 @@ export default function App({ ...@@ -54,41 +54,35 @@ export default function App({
gtmId: gtmtag, gtmId: gtmtag,
}); });
} }
}, [gtmtag]); // Re-run effect when gtmtag changes }, [gtmtag]); // Re-run effect when gtmtag changes
useEffect(() => {
const loadFacebookPixel = async () => {
const { default: ReactPixel } = await import("react-facebook-pixel");
ReactPixel.init("2400625270215830", null, {
autoConfig: true,
debug: true,
});
ReactPixel.pageView(); // Track page view
ReactPixel.track("ViewContent"); // Track a custom event, for example
};
if (typeof window !== "undefined") {
loadFacebookPixel();
}
return () => {
};
}, []);
return ( return (
<> <>
<Providers store={store}> <Providers store={store}>
<Head> <Head>
<title>{title}</title> <title>{title}</title>
<meta charSet="utf-8" /> <meta charSet="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" /> <meta
name="viewport"
content="width=device-width, initial-scale=1, shrink-to-fit=no"
/>
<meta name="description" content={description} /> <meta name="description" content={description} />
<meta property="og:title" content={title} /> <meta property="og:title" content={title} />
<meta property="og:description" content={description} /> <meta property="og:description" content={description} />
<link rel="apple-touch-icon" sizes="180x180" href="images/fav.png" /> <link rel="apple-touch-icon" sizes="180x180" href="images/fav.png" />
<link rel="icon" type="image/png" sizes="32x32" href="images/fav.png" /> <link
<link rel="icon" type="image/png" sizes="16x16" href="images/fav.png" /> rel="icon"
type="image/png"
sizes="32x32"
href="images/fav.png"
/>
<link
rel="icon"
type="image/png"
sizes="16x16"
href="images/fav.png"
/>
</Head> </Head>
<Header /> <Header />
......
import ConversionCode from "@/components/reuseables/ConversionCode/ConversionCode";
import PageBanner from "@/components/reuseables/PageBanner"; import PageBanner from "@/components/reuseables/PageBanner";
import Seo from "@/components/reuseables/Seo/Seo"; import Seo from "@/components/reuseables/Seo/Seo";
// import BlogDetails from "@/container/Blog/BlogDetails"; // import BlogDetails from "@/container/Blog/BlogDetails";
...@@ -8,7 +9,7 @@ import Link from "next/link"; ...@@ -8,7 +9,7 @@ import Link from "next/link";
import QueryString from "qs"; import QueryString from "qs";
import React from "react"; import React from "react";
const details = ({ blog }) => { const details = ({ blog ,conversionData }) => {
// console.log(blog, "blog"); // console.log(blog, "blog");
// console.log(blog[0]?.Description, "blog content"); // console.log(blog[0]?.Description, "blog content");
...@@ -22,6 +23,8 @@ const details = ({ blog }) => { ...@@ -22,6 +23,8 @@ const details = ({ blog }) => {
}, },
]; ];
const code = conversionData?.conversion;
// const seo = blog?.seo; // const seo = blog?.seo;
// console.log(seo, 'seo'); // console.log(seo, 'seo');
...@@ -29,7 +32,7 @@ const details = ({ blog }) => { ...@@ -29,7 +32,7 @@ const details = ({ blog }) => {
<> <>
{/* <Seo seo={seo} /> */} {/* <Seo seo={seo} /> */}
<PageBanner banners={banners} /> <PageBanner banners={banners} />
<ConversionCode code={code} />
<div className="blog-details-area ptb-100"> <div className="blog-details-area ptb-100">
<div className="container"> <div className="container">
<div className="row"> <div className="row">
...@@ -108,15 +111,34 @@ export async function getServerSideProps({ params }) { ...@@ -108,15 +111,34 @@ export async function getServerSideProps({ params }) {
], ],
}; };
const query2 = {
populate: ["conversion"],
};
const queryString = QueryString.stringify(query, { const queryString = QueryString.stringify(query, {
encodeValuesOnly: true, encodeValuesOnly: true,
}); });
const query12String = QueryString.stringify(query2, {
encodeValuesOnly: true,
});
const endpoint = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/blogs?${queryString}`; const endpoint = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/blogs?${queryString}`;
const response = await axios.get(endpoint); const endpoint2 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/google-manger?${query12String}`;
const [response, response2] = await Promise.all([
axios.get(endpoint),
axios.get(endpoint2),
]);
const blog = response.data.data; const blog = response.data.data;
const conversionData = response2.data.data;
return { return {
props: { props: {
blog, blog,
conversionData
}, },
}; };
} }
...@@ -11,9 +11,10 @@ import qs from "qs"; ...@@ -11,9 +11,10 @@ import qs from "qs";
import axios from "axios"; import axios from "axios";
import Seo from "@/components/reuseables/Seo/Seo"; import Seo from "@/components/reuseables/Seo/Seo";
import Pagination from "react-js-pagination"; import Pagination from "react-js-pagination";
import ConversionCode from "@/components/reuseables/ConversionCode/ConversionCode";
const blogs = ({Blogpage }) => { const blogs = ({Blogpage, conversionData }) => {
const dispatch = useDispatch() const dispatch = useDispatch()
useEffect(() => { useEffect(() => {
dispatch(fetchBlogList()) dispatch(fetchBlogList())
...@@ -46,6 +47,8 @@ const blogs = ({Blogpage }) => { ...@@ -46,6 +47,8 @@ const blogs = ({Blogpage }) => {
const seo = Blogpage?.seo; const seo = Blogpage?.seo;
const code = conversionData?.conversion;
// console.log(seo, 'Blogpage'); // console.log(seo, 'Blogpage');
return ( return (
...@@ -53,6 +56,7 @@ const blogs = ({Blogpage }) => { ...@@ -53,6 +56,7 @@ const blogs = ({Blogpage }) => {
<> <>
<Seo seo={seo} /> <Seo seo={seo} />
<ConversionCode code={code} />
<PageBanner banners={banners} /> <PageBanner banners={banners} />
<div className="blog-area ptb-100"> <div className="blog-area ptb-100">
<Container> <Container>
...@@ -147,19 +151,31 @@ export async function getServerSideProps() { ...@@ -147,19 +151,31 @@ export async function getServerSideProps() {
"seo.schema", "seo.schema",
], ],
}; };
const query2 = {
populate: ["conversion"],
};
const query1String = qs.stringify(query1, { const query1String = qs.stringify(query1, {
encodeValuesOnly: true, encodeValuesOnly: true,
}); });
const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/blog-page?${query1String}`; const query12String = qs.stringify(query2, {
console.log(`Final url: ${endpoint1}`); encodeValuesOnly: true,
});
const response1 = await axios.get(endpoint1); const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/blog-page?${query1String}`;
const endpoint2 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/google-manger?${query12String}`;
console.log(`Final url: ${endpoint2}`);
const [response1, response2] = await Promise.all([
axios.get(endpoint1),
axios.get(endpoint2),
]);
const Blogpage = response1.data.data; const Blogpage = response1.data.data;
const conversionData = response2.data.data;
return { return {
props: { Blogpage }, props: { Blogpage,conversionData },
}; };
} catch (error) { } catch (error) {
console.log("Error", error); console.log("Error", error);
......
...@@ -10,10 +10,10 @@ import LeftSideImage from "@/container/Corpedia/LeftSideImage"; ...@@ -10,10 +10,10 @@ import LeftSideImage from "@/container/Corpedia/LeftSideImage";
import RightSideImage from "@/container/Corpedia/RightSideImage"; import RightSideImage from "@/container/Corpedia/RightSideImage";
import TableData from "@/components/reuseables/services/TableData"; import TableData from "@/components/reuseables/services/TableData";
import Details from "@/components/reuseables/services/Details"; import Details from "@/components/reuseables/services/Details";
import ConversionCode from "@/components/reuseables/ConversionCode/ConversionCode";
const details = ({ Budget }) => { const details = ({ Budget, conversionData }) => {
const introDeatils = Budget; const introDeatils = Budget;
// console.log("Budget", Budget);
const dynamicdata = Budget[0]?.BudgetDeatils; const dynamicdata = Budget[0]?.BudgetDeatils;
// console.log("dynamicdata", dynamicdata); // console.log("dynamicdata", dynamicdata);
const banners = [ const banners = [
...@@ -26,9 +26,13 @@ const details = ({ Budget }) => { ...@@ -26,9 +26,13 @@ const details = ({ Budget }) => {
}, },
// Add more banners as needed // Add more banners as needed
]; ];
const code = conversionData?.conversion;
return ( return (
<> <>
<PageBanner banners={banners} /> <PageBanner banners={banners} />
<ConversionCode code={code} />
<Background introdeatils={introDeatils} /> <Background introdeatils={introDeatils} />
<section className="corpedia-details-page"> <section className="corpedia-details-page">
...@@ -114,19 +118,34 @@ export async function getServerSideProps({ params }) { ...@@ -114,19 +118,34 @@ export async function getServerSideProps({ params }) {
}, },
}, },
}; };
const query2 = {
populate: ["conversion"],
};
const query1String = qs.stringify(query1, { const query1String = qs.stringify(query1, {
encodeValuesOnly: true, encodeValuesOnly: true,
}); });
const query12String = qs.stringify(query2, {
encodeValuesOnly: true,
});
const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/budgetpanoramas?${query1String}`; const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/budgetpanoramas?${query1String}`;
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 = await axios.get(endpoint1); const [response1, response2] = await Promise.all([
axios.get(endpoint1),
axios.get(endpoint2),
]);
const Budget = response1.data.data; const Budget = response1.data.data;
const conversionData = response2.data.data;
return { return {
props: { Budget }, props: { Budget , conversionData },
}; };
} catch (error) { } catch (error) {
console.log("Error", error); console.log("Error", error);
......
...@@ -15,6 +15,7 @@ import axios from "axios"; ...@@ -15,6 +15,7 @@ import axios from "axios";
import ReactPaginate from "react-paginate"; import ReactPaginate from "react-paginate";
import Seo from "@/components/reuseables/Seo/Seo"; import Seo from "@/components/reuseables/Seo/Seo";
import Pagination from "react-js-pagination"; import Pagination from "react-js-pagination";
import ConversionCode from "@/components/reuseables/ConversionCode/ConversionCode";
// const services = [ // const services = [
// { // {
...@@ -89,7 +90,7 @@ import Pagination from "react-js-pagination"; ...@@ -89,7 +90,7 @@ import Pagination from "react-js-pagination";
// }, // },
// ]; // ];
const BudgetPanorama = ({ BudgetData }) => { const BudgetPanorama = ({ BudgetData , conversionData }) => {
const banners = [ const banners = [
{ {
imageSrc: cleanImage(BudgetData?.Banner?.Image?.url), imageSrc: cleanImage(BudgetData?.Banner?.Image?.url),
...@@ -112,6 +113,7 @@ const BudgetPanorama = ({ BudgetData }) => { ...@@ -112,6 +113,7 @@ const BudgetPanorama = ({ BudgetData }) => {
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 = budgetlist?.slice(offset, offset + postsPerPage);
const code = conversionData?.conversion;
// Handle page click // Handle page click
const handlePageClick = (pageNumber) => { const handlePageClick = (pageNumber) => {
...@@ -123,6 +125,7 @@ const BudgetPanorama = ({ BudgetData }) => { ...@@ -123,6 +125,7 @@ const BudgetPanorama = ({ BudgetData }) => {
return ( return (
<> <>
<Seo seo={seo} /> <Seo seo={seo} />
<ConversionCode code={code} />
<PageBanner banners={banners} /> <PageBanner banners={banners} />
<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>
...@@ -256,19 +259,34 @@ export async function getServerSideProps() { ...@@ -256,19 +259,34 @@ export async function getServerSideProps() {
"seo.schema", "seo.schema",
], ],
}; };
const query2 = {
populate: ["conversion"],
};
const query1String = qs.stringify(query1, { const query1String = qs.stringify(query1, {
encodeValuesOnly: true, encodeValuesOnly: true,
}); });
const query12String = qs.stringify(query2, {
encodeValuesOnly: true,
});
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}`;
// console.log(`Final url: ${endpoint1}`); // console.log(`Final url: ${endpoint1}`);
const response1 = await axios.get(endpoint1); const [response1, response2] = await Promise.all([
axios.get(endpoint1),
axios.get(endpoint2),
]);
const BudgetData = response1.data.data; const BudgetData = response1.data.data;
const conversionData = response2.data.data;
return { return {
props: { BudgetData }, props: { BudgetData,conversionData },
}; };
} catch (error) { } catch (error) {
console.log("Error", error); console.log("Error", error);
......
...@@ -6,8 +6,9 @@ import { cleanImage } from "@/layout/imageHandling"; ...@@ -6,8 +6,9 @@ import { cleanImage } from "@/layout/imageHandling";
import qs from "qs"; import qs from "qs";
import axios from "axios"; import axios from "axios";
import Seo from "@/components/reuseables/Seo/Seo"; import Seo from "@/components/reuseables/Seo/Seo";
import ConversionCode from "@/components/reuseables/ConversionCode/ConversionCode";
const index = ({ CareerPage }) => { const index = ({ CareerPage ,conversionData }) => {
console.log(CareerPage, "CareerPage"); console.log(CareerPage, "CareerPage");
const banners = [ const banners = [
{ {
...@@ -19,13 +20,16 @@ const index = ({ CareerPage }) => { ...@@ -19,13 +20,16 @@ const index = ({ CareerPage }) => {
}, },
// Add more banners as needed // Add more banners as needed
]; ];
const code = conversionData?.conversion;
const seo = CareerPage?.seo; const seo = CareerPage?.seo;
console.log(seo, "seo") // console.log(seo, "seo")
return ( return (
<> <>
<Seo seo={seo} /> <Seo seo={seo} />
<PageBanner banners={banners} /> <PageBanner banners={banners} />
<ConversionCode code={code} />
{/* <CareerListing /> */} {/* <CareerListing /> */}
<section className="ptb-100"> <section className="ptb-100">
<Container> <Container>
...@@ -67,19 +71,31 @@ export async function getServerSideProps() { ...@@ -67,19 +71,31 @@ export async function getServerSideProps() {
const query1 = { const query1 = {
populate: ["Banner.Image"], populate: ["Banner.Image"],
}; };
const query2 = {
populate: ["conversion"],
};
const query1String = qs.stringify(query1, { const query1String = qs.stringify(query1, {
encodeValuesOnly: true, encodeValuesOnly: true,
}); });
const query12String = qs.stringify(query2, {
encodeValuesOnly: true,
});
const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/career-page?${query1String}`; const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/career-page?${query1String}`;
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 = await axios.get(endpoint1); const [response1, response2] = await Promise.all([
const CareerPage = response1.data.data; axios.get(endpoint1),
axios.get(endpoint2),
]);
const CareerPage = response1.data.data;
const conversionData = response2.data.data;
return { return {
props: { CareerPage }, props: { CareerPage ,conversionData },
}; };
} catch (error) { } catch (error) {
console.log("Error", error); console.log("Error", error);
......
...@@ -8,6 +8,7 @@ import MethodOne from "@/components/reuseables/services/MethodOne"; ...@@ -8,6 +8,7 @@ import MethodOne from "@/components/reuseables/services/MethodOne";
import Seo from "@/components/reuseables/Seo/Seo"; import Seo from "@/components/reuseables/Seo/Seo";
import LeftSideImage from "@/container/Corpedia/LeftSideImage"; import LeftSideImage from "@/container/Corpedia/LeftSideImage";
import RightSideImage from "@/container/Corpedia/RightSideImage"; import RightSideImage from "@/container/Corpedia/RightSideImage";
import ConversionCode from "@/components/reuseables/ConversionCode/ConversionCode";
const banners = [ const banners = [
{ {
...@@ -19,40 +20,6 @@ const banners = [ ...@@ -19,40 +20,6 @@ const banners = [
}, },
// Add more banners as needed // Add more banners as needed
]; ];
const BAData = [
{
subtitle: "Client Servicing",
title: "Business Advisory ",
paragraphs: [
"At Advith Consulting, we guide businesses through the critical growth stages - Existence, Survival, Success, Take off & Maturity . Our advisory services are tailored to navigate each phase with strategic foresight and financial acumen, ensuring your business thrives at every turn. Partner with us for a journey of financial excellence.",
],
imageSrc: "/images/client-service/About-Business-Advisory.png",
imageAlt: "Client Servicing Image",
},
];
const shareholders = [
{
// subtitle: "About FC & CFO Services",
title: "Stakeholders & their expectations",
paragraphs: [
"McKinsey & Company has defined a matrix where they have arrived at 4 types of consulting - a neutral facilitator, a facilitative consultant, an observer or an expert. In Business Conuslting engagements, in addition to performing these roles, we also perform the role of a doer and an enabler, helping founders solve problems with their idea. ",
],
imageSrc: "/images/client-service/stake.png",
imageAlt: "FC & CFO Services Image",
},
];
const aboutcfo = [
{
subtitle: "About FC & CFO Services",
title: "About Business Advisory",
paragraphs: [
"An idea is great only as long as it solves a problem. In solving a problem, an organisation and its founder go through multiple stages. Founders are often stuck in a balancing act, handling multiple stakeholders and their expectations.Through our Business Advisory engagements, we play the critical role of guiding organizations through their growth journey, providing strategic insights and actionable plans that align with their goals. We help management teams and founders navigate the complexities of each stage, from existence to maturity, ensuring they make informed decisions. Our expertise enables us to identify the strengths, weaknesses, opportunities and threats of organisations, ultimately supporting our clients in achieving their long-term vision while effectively balancing stakeholder expectations",
],
imageSrc: "/images/client-service/cfo.webp",
imageAlt: "FC & CFO Services Image",
},
];
const sliderConfig = { const sliderConfig = {
spaceBetween: 20, spaceBetween: 20,
...@@ -61,98 +28,10 @@ const sliderConfig = { ...@@ -61,98 +28,10 @@ const sliderConfig = {
showAutoplay: true, showAutoplay: true,
autoplayDelay: 4000, autoplayDelay: 4000,
}; };
const MethodOneData = [
{
stepNumber: "01",
img: "/images/shape/icon/discovery.png",
title: "Founder’s Office",
descr:
"Our Founders's Office offers strategic guidance and executive oversight, ensuring alignment with the organization's long-term vision and objectives. We facilitate high-level decision-making processes and foster stakeholder relationships to drive sustainable growth and corporate excellence.",
altText: "discovery-icon",
},
{
stepNumber: "02",
img: "/images/shape/icon/analysis.png",
title: "Family Business Advisory & Succession Planning",
descr:
"Our Family Business Advisory services focus on sustaining and enhancing family-owned enterprises. We provide strategies for governance, succession planning, family office setup and conflict resolution to ensure long-term success and harmony within the family business.",
altText: "analysis-icon",
},
{
stepNumber: "03",
img: "/images/shape/icon/setup.png",
title: "Compensation Structuring (Stock Based Plans)",
descr:
"Our Compensation Structuring services are designed to align employee incentives with company performance and strategic goals. We develop and implement comprehensive compensation plans that attract, retain, and motivate top talent while fostering a culture of ownership and engagement.",
altText: "setup-icon",
},
{
stepNumber: "04",
img: "/images/shape/icon/execution.png",
title: "Transfer Pricing",
descr:
"We provide comprehensive transfer pricing strategies, documentation, and risk assessment to manage intercompany transactions effectively and minimize potential tax challenges.",
altText: "execution-icon",
},
{
stepNumber: "05",
img: "/images/shape/icon/setup.png",
title: "Bespoke Advisory",
descr:
"Our Business Advisory practice is agile & agnostic to the type & size of an organisation. We offer solutions covering the strategic, operational & tactical needs of any business. ",
altText: "setup-icon",
},
{
stepNumber: "06",
img: "/images/shape/icon/execution.png",
title: "Transformation Engagements",
descr:
"Our Transformation Engagements are designed to drive comprehensive change. We implement innovative strategies and solutions to optimize business processes, foster a culture of continuous improvement, and achieve measurable results. ",
altText: "execution-icon",
},
{
stepNumber: "07",
img: "/images/shape/icon/setup.png",
title: "Governance Models",
descr:
"Our Governance Models services help create clear and effective frameworks for better decision-making and accountability. We design customized structures to improve performance and ensure regulatory compliance. ",
altText: "setup-icon",
},
];
const partners = [
{
image: "/images/clientel/academic-city.svg", const Ba = ({ bapage ,conversionData }) => {
altText: "partner",
link: "#",
},
{
image: "/images/clientel/ADALVO.svg",
altText: "partner",
link: "#",
},
{
image: "/images/clientel/RANDOX.svg",
altText: "partner",
link: "#",
},
{
image: "/images/clientel/Relicare.svg",
altText: "partner",
link: "#",
},
{
image: "/images/clientel/Relicare-1.svg",
altText: "partner",
link: "#",
},
{
image: "/images/clientel/Sigma.svg",
altText: "partner",
link: "#",
},
];
const Ba = ({ bapage }) => {
const dynamicdata = bapage?.BusinessDetails; const dynamicdata = bapage?.BusinessDetails;
// console.log("dynamicdata", dynamicdata); // console.log("dynamicdata", dynamicdata);
...@@ -162,9 +41,12 @@ const Ba = ({ bapage }) => { ...@@ -162,9 +41,12 @@ const Ba = ({ bapage }) => {
const seo = bapage?.seo; const seo = bapage?.seo;
// console.log(seo); // console.log(seo);
const code = conversionData?.conversion;
return ( return (
<> <>
<Seo seo={seo} /> <Seo seo={seo} />
<ConversionCode code={code} />
<PageBanner banners={banners} /> <PageBanner banners={banners} />
<section className="cfo-page"> <section className="cfo-page">
{dynamicdata && {dynamicdata &&
...@@ -288,18 +170,33 @@ export async function getServerSideProps() { ...@@ -288,18 +170,33 @@ export async function getServerSideProps() {
], ],
}; };
const query2 = {
populate: ["conversion"],
};
const query1String = qs.stringify(query1, { const query1String = qs.stringify(query1, {
encodeValuesOnly: true, encodeValuesOnly: true,
}); });
const query12String = qs.stringify(query2, {
encodeValuesOnly: true,
});
const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/business-page?${query1String}`; const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/business-page?${query1String}`;
console.log(`Final url: ${endpoint1}`); 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 response1 = await axios.get(endpoint1);
const bapage = response1.data.data; const bapage = response1.data.data;
const conversionData = response2.data.data;
return { return {
props: { bapage }, props: { bapage , conversionData },
}; };
} catch (error) { } catch (error) {
console.log("Error", error); console.log("Error", error);
......
...@@ -8,36 +8,37 @@ import { cleanImage } from "@/layout/imageHandling"; ...@@ -8,36 +8,37 @@ import { cleanImage } from "@/layout/imageHandling";
import LeftSideImage from "@/container/Corpedia/LeftSideImage"; import LeftSideImage from "@/container/Corpedia/LeftSideImage";
import RightSideImage from "@/container/Corpedia/RightSideImage"; import RightSideImage from "@/container/Corpedia/RightSideImage";
import Seo from "@/components/reuseables/Seo/Seo"; import Seo from "@/components/reuseables/Seo/Seo";
import ConversionCode from "@/components/reuseables/ConversionCode/ConversionCode";
const CFOData = [ // const CFOData = [
{ // {
subtitle: "Client Servicing", // subtitle: "Client Servicing",
title: "Client Servicing - CFO", // title: "Client Servicing - CFO",
paragraphs: [ // paragraphs: [
"FC & CFO Services at Advith Consulting LLP brings together specialists at different functional layers enabling finance operations in your organisation to function in an efficient manner. Depending upon the requirement of the business, our areas of focus range from streamling routine finance operations to ensuring compliances including taxation and corporate law and even to strategic, business finance & assurance, to provide a holistic approach to financial management. ", // "FC & CFO Services at Advith Consulting LLP brings together specialists at different functional layers enabling finance operations in your organisation to function in an efficient manner. Depending upon the requirement of the business, our areas of focus range from streamling routine finance operations to ensuring compliances including taxation and corporate law and even to strategic, business finance & assurance, to provide a holistic approach to financial management. ",
], // ],
imageSrc: "/images/client-service/Client_Servicing-CFO.webp", // imageSrc: "/images/client-service/Client_Servicing-CFO.webp",
imageAlt: "Client Servicing Image", // imageAlt: "Client Servicing Image",
}, // },
{ // {
subtitle: "About FC & CFO Services", // subtitle: "About FC & CFO Services",
title: "About FC & CFO Services", // title: "About FC & CFO Services",
paragraphs: [ // paragraphs: [
"The significance and role of a finance function in an organisation depends on multiple factors including the vision of the management, nature of business, scale of operations & status of funding among others. At Advith Consulting, we offer FC & CFO Services upon careful evaluation of the requirement of your business. Our role as FC's and CFO's will be to act as enablers in moving from data entry and reporting merely as a compliance to a mechanism wherein we bring together insightful data analysis and financial expertise to offer actionable insights to the leadership team", // "The significance and role of a finance function in an organisation depends on multiple factors including the vision of the management, nature of business, scale of operations & status of funding among others. At Advith Consulting, we offer FC & CFO Services upon careful evaluation of the requirement of your business. Our role as FC's and CFO's will be to act as enablers in moving from data entry and reporting merely as a compliance to a mechanism wherein we bring together insightful data analysis and financial expertise to offer actionable insights to the leadership team",
], // ],
imageSrc: "/images/client-service/About_FC_&_CFO_Services.webp", // imageSrc: "/images/client-service/About_FC_&_CFO_Services.webp",
imageAlt: "FC & CFO Services Image", // imageAlt: "FC & CFO Services Image",
}, // },
{ // {
subtitle: "About FC & CFO Services", // subtitle: "About FC & CFO Services",
title: "Methodology 1 - How we do it? ", // title: "Methodology 1 - How we do it? ",
paragraphs: [ // paragraphs: [
"A typical finance function in an organization is structured in the manner of a pyramid with the executors at the base and strategic decision making at the pinnacle. Each layer has incremental responsibilities which are all aligned to the organization’s vision. The pyramid of finance operations is a testament to structured efficiency. Each layer signifies a distinct function, essential to the integrity of the whole. ", // "A typical finance function in an organization is structured in the manner of a pyramid with the executors at the base and strategic decision making at the pinnacle. Each layer has incremental responsibilities which are all aligned to the organization’s vision. The pyramid of finance operations is a testament to structured efficiency. Each layer signifies a distinct function, essential to the integrity of the whole. ",
], // ],
imageSrc: "/images/client-service/Methodology 1 - How we do it.webp", // imageSrc: "/images/client-service/Methodology 1 - How we do it.webp",
imageAlt: "FC & CFO Services Image", // imageAlt: "FC & CFO Services Image",
}, // },
]; // ];
const sliderConfig = { const sliderConfig = {
spaceBetween: 20, spaceBetween: 20,
slidesPerView: 5, slidesPerView: 5,
...@@ -176,7 +177,7 @@ const partners = [ ...@@ -176,7 +177,7 @@ const partners = [
link: "#", link: "#",
}, },
]; ];
const clientservicecfo = ({ cfopage }) => { const clientservicecfo = ({ cfopage ,conversionData }) => {
// console.log(cfopage ,"cfopage") // console.log(cfopage ,"cfopage")
const banners = [ const banners = [
{ {
...@@ -197,9 +198,12 @@ const clientservicecfo = ({ cfopage }) => { ...@@ -197,9 +198,12 @@ const clientservicecfo = ({ cfopage }) => {
const seo = cfopage?.seo; const seo = cfopage?.seo;
// console.log(seo) // console.log(seo)
const code = conversionData?.conversion;
return ( return (
<> <>
<Seo seo={seo} /> <Seo seo={seo} />
<ConversionCode code={code} />
<PageBanner banners={banners} /> <PageBanner banners={banners} />
<div className="cfo-services-area ptb-100"> <div className="cfo-services-area ptb-100">
...@@ -291,18 +295,35 @@ export async function getServerSideProps() { ...@@ -291,18 +295,35 @@ export async function getServerSideProps() {
], ],
}; };
const query2 = {
populate: ["conversion"],
};
const query1String = qs.stringify(query1, { const query1String = qs.stringify(query1, {
encodeValuesOnly: true, encodeValuesOnly: true,
}); });
const query12String = qs.stringify(query2, {
encodeValuesOnly: true,
});
const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/cfo-page?${query1String}`; 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}`); console.log(`Final url: ${endpoint1}`);
const response1 = await axios.get(endpoint1);
const [response1, response2] = await Promise.all([
axios.get(endpoint1),
axios.get(endpoint2),
]);
const cfopage = response1.data.data; const cfopage = response1.data.data;
const conversionData = response2.data.data;
return { return {
props: { cfopage }, props: { cfopage ,conversionData },
}; };
} catch (error) { } catch (error) {
console.log("Error", error); console.log("Error", error);
......
...@@ -13,10 +13,11 @@ import { fetchIndustryList } from "@/redux/slices/industryslice"; ...@@ -13,10 +13,11 @@ import { fetchIndustryList } from "@/redux/slices/industryslice";
import { fetchFunctionArea } from "@/redux/slices/functionareaslice"; import { fetchFunctionArea } from "@/redux/slices/functionareaslice";
import TechnicalExpertise from "@/container/ClientServicing/ TechnicalExpertise"; import TechnicalExpertise from "@/container/ClientServicing/ TechnicalExpertise";
import ClientService from "@/container/Home/ClientService"; import ClientService from "@/container/Home/ClientService";
import ConversionCode from "@/components/reuseables/ConversionCode/ConversionCode";
const ClientServicingPage = ({ ClientPage }) => { const ClientServicingPage = ({ ClientPage , conversionData }) => {
// console.log(ClientPage, "data1"); // console.log(ClientPage, "data1");
const banners = [ const banners = [
...@@ -46,11 +47,14 @@ const ClientServicingPage = ({ ClientPage }) => { ...@@ -46,11 +47,14 @@ const ClientServicingPage = ({ ClientPage }) => {
// console.log(FunctionArea, "data") // console.log(FunctionArea, "data")
const seo = ClientPage?.seo; const seo = ClientPage?.seo;
const code = conversionData?.conversion;
return ( return (
<> <>
<PageBanner banners={banners} /> <PageBanner banners={banners} />
<ConversionCode code={code} />
<ClientService service={serviceData} /> <ClientService service={serviceData} />
{/* <OurService /> */} {/* <OurService /> */}
<TechnicalExpertise technicalexpertise={technicalexpertise}/> <TechnicalExpertise technicalexpertise={technicalexpertise}/>
...@@ -76,18 +80,32 @@ export async function getServerSideProps() { ...@@ -76,18 +80,32 @@ export async function getServerSideProps() {
], ],
}; };
const query2 = {
populate: ["conversion"],
};
const query1String = qs.stringify(query1, { const query1String = qs.stringify(query1, {
encodeValuesOnly: true, encodeValuesOnly: true,
}); });
const query12String = qs.stringify(query2, {
encodeValuesOnly: true,
});
const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/client-servicing?${query1String}`; 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}`); console.log(`Final url: ${endpoint1}`);
const response1 = await axios.get(endpoint1); const [response1, response2] = await Promise.all([
axios.get(endpoint1),
axios.get(endpoint2),
]);
const ClientPage = response1.data.data; const ClientPage = response1.data.data;
const conversionData = response2.data.data;
return { return {
props: { ClientPage }, props: { ClientPage,conversionData },
}; };
} catch (error) { } catch (error) {
console.log("Error", error); console.log("Error", error);
......
...@@ -9,6 +9,7 @@ import MethodTwoSection from "@/components/reuseables/services/MethodTwo"; ...@@ -9,6 +9,7 @@ import MethodTwoSection from "@/components/reuseables/services/MethodTwo";
import Seo from "@/components/reuseables/Seo/Seo"; import Seo from "@/components/reuseables/Seo/Seo";
import LeftSideImage from "@/container/Corpedia/LeftSideImage"; import LeftSideImage from "@/container/Corpedia/LeftSideImage";
import RightSideImage from "@/container/Corpedia/RightSideImage"; import RightSideImage from "@/container/Corpedia/RightSideImage";
import ConversionCode from "@/components/reuseables/ConversionCode/ConversionCode";
const banners = [ const banners = [
{ {
...@@ -21,26 +22,26 @@ const banners = [ ...@@ -21,26 +22,26 @@ const banners = [
// Add more banners as needed // Add more banners as needed
]; ];
const RAData = [ // const RAData = [
{ // {
subtitle: "Client Servicing", // subtitle: "Client Servicing",
title: "Risk Advisory", // title: "Risk Advisory",
paragraphs: [ // paragraphs: [
"As businesses grow and expand their footprint, an area that is often neglected is the requirement to bring in discipline in areas of finance, human resource management operations. At Advith Consulting, we follow a 4-step EASE Approach. E – Understand existing processes , A – Analyze the gaps S – Set up SOP’s , E – Effective Implementation ", // "As businesses grow and expand their footprint, an area that is often neglected is the requirement to bring in discipline in areas of finance, human resource management operations. At Advith Consulting, we follow a 4-step EASE Approach. E – Understand existing processes , A – Analyze the gaps S – Set up SOP’s , E – Effective Implementation ",
], // ],
imageSrc: "/images/client-service/Risk Advisory.webp", // imageSrc: "/images/client-service/Risk Advisory.webp",
imageAlt: "Client Servicing Image", // imageAlt: "Client Servicing Image",
}, // },
{ // {
subtitle: "Client Servicing", // subtitle: "Client Servicing",
title: " About Risk Advisory", // title: " About Risk Advisory",
paragraphs: [ // paragraphs: [
"Often, it is not until something goes wrong that an organisation realises that it is has ineffective internal controls. Further, there is also a misconception among organisations that internal controls are needed only to satisy the statutory auditor. Strong internal controls play a crucial role in the success of any organisation. They enhance efficiency, ensure compliance, streamline operations & facilitate growth. Irrespective of the size of your organisation, defining processes, identifying risks & establishing controls are essential. At Advith, we understand the business of the entity and build strong yet agile processes to ensure that they stand the test of time. ", // "Often, it is not until something goes wrong that an organisation realises that it is has ineffective internal controls. Further, there is also a misconception among organisations that internal controls are needed only to satisy the statutory auditor. Strong internal controls play a crucial role in the success of any organisation. They enhance efficiency, ensure compliance, streamline operations & facilitate growth. Irrespective of the size of your organisation, defining processes, identifying risks & establishing controls are essential. At Advith, we understand the business of the entity and build strong yet agile processes to ensure that they stand the test of time. ",
], // ],
imageSrc: "/images/client-service/About-Risk-Advisory.png", // imageSrc: "/images/client-service/About-Risk-Advisory.png",
imageAlt: "FC & CFO Services Image", // imageAlt: "FC & CFO Services Image",
}, // },
]; // ];
const sliderConfig = { const sliderConfig = {
spaceBetween: 20, spaceBetween: 20,
slidesPerView: 4, slidesPerView: 4,
...@@ -63,109 +64,23 @@ const sliderConfig = { ...@@ -63,109 +64,23 @@ const sliderConfig = {
}, },
}, },
}; };
const MethodOneData = [
{
stepNumber: "01",
img: "/images/shape/icon/discovery.png",
title: "E – Understand existing processes",
descr:
"Understand the business of the entity & identify the requirements of the entity with respect to the finance function",
altText: "discovery-icon",
},
{
stepNumber: "02",
img: "/images/shape/icon/analysis.png",
title: "A – Analyze the gaps ",
descr: " Analyze past financial data to uncover trends and obtain insights",
altText: "analysis-icon",
},
{
stepNumber: "03",
img: "/images/shape/icon/setup.png",
title: "S – Set up SOP’s ",
descr: " Establishing the Modus Operandi of the finance function",
altText: "setup-icon",
},
{
stepNumber: "04",
img: "/images/shape/icon/execution.png",
title: "E – Effective Implementation",
descr: " Implement financial strategies and manage day-to-day operations ",
altText: "execution-icon",
},
];
const methodTwoData = [
{
img: "/images/services/cfo/activity/recurring.png",
title: "Understanding Common Terms",
descr:
"By establishing a common vocabulary, it promotes consistency, minimizes ambiguity, and enhances communication, thereby facilitating accurate interpretation and execution of the procedures outlined in the SOP.",
},
{
img: "/images/services/cfo/activity/monthly.png",
title: "Organisation Structure",
descr:
"This matrix outlines reporting relationships, hierarchical structures, and communication channels among different departments or personnel involved in the SOP processes.",
},
{
img: "/images/services/cfo/activity/quarterly.png",
title: "Process Flow Chart & Detailed Process Notes:",
descr:
"A flow provides a visual representation of the sequential steps in the process. The detailed process notes that accompany the flow chart provide a more in-depth explanation of each step in the process",
},
{
img: "/images/services/cfo/activity/annual.png",
title: "Risk Control Matrix:",
descr:
"Risks associated with each step in the process are Controls may be categorized as System (automated), Manual (human intervention), or Hybrid (combination of both). ",
},
{
img: "/images/services/cfo/activity/need.png",
title: "Version Control",
descr:
"With identifiable version numbers, dates, and authorship details, it enhances accountability and transparency during audits. Effective version control streamlines collaboration, allowing multiple contributors to work simultaneously.",
},
];
const partners = [
{
image: "/images/clientel/adsyndicate.svg",
altText: "partner",
link: "#",
},
{
image: "/images/clientel/APISERO.svg",
altText: "partner",
link: "#",
},
{
image: "/images/clientel/Bighaat.svg",
altText: "partner",
link: "#",
},
{
image: "/images/clientel/CRESTA.svg",
altText: "partner",
link: "#",
},
{
image: "/images/clientel/Encee.svg",
altText: "partner",
link: "#",
},
];
const RaPage = ({ rapage }) => { const RaPage = ({ rapage, conversionData }) => {
const dynamicdata = rapage?.RiskDetails; const dynamicdata = rapage?.RiskDetails;
// console.log("dynamicdata", dynamicdata); // console.log("dynamicdata", dynamicdata);
const clientlogo = rapage?.Clientel; const clientlogo = rapage?.Clientel;
// console.log("clientlogo", clientlogo); // console.log("clientlogo", clientlogo);
const seo = rapage?.seo; const seo = rapage?.seo;
const code = conversionData?.conversion;
return ( return (
<> <>
<Seo seo={seo} /> <Seo seo={seo} />
<ConversionCode code={code} />
<PageBanner banners={banners} /> <PageBanner banners={banners} />
<section className="cfo-page"> <section className="cfo-page">
{dynamicdata && {dynamicdata &&
...@@ -269,18 +184,34 @@ export async function getServerSideProps() { ...@@ -269,18 +184,34 @@ export async function getServerSideProps() {
], ],
}; };
const query2 = {
populate: ["conversion"],
};
const query1String = qs.stringify(query1, { const query1String = qs.stringify(query1, {
encodeValuesOnly: true, encodeValuesOnly: true,
}); });
const query12String = qs.stringify(query2, {
encodeValuesOnly: true,
});
const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/risk-page?${query1String}`; const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/risk-page?${query1String}`;
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 = await axios.get(endpoint1);
const [response1, response2] = await Promise.all([
axios.get(endpoint1),
axios.get(endpoint2),
]);
const rapage = response1.data.data; const rapage = response1.data.data;
const conversionData = response2.data.data;
return { return {
props: { rapage }, props: { rapage, conversionData },
}; };
} catch (error) { } catch (error) {
console.log("Error", error); console.log("Error", error);
......
...@@ -9,6 +9,7 @@ import { cleanImage } from "@/layout/imageHandling"; ...@@ -9,6 +9,7 @@ import { cleanImage } from "@/layout/imageHandling";
import Seo from "@/components/reuseables/Seo/Seo"; import Seo from "@/components/reuseables/Seo/Seo";
import LeftSideImage from "@/container/Corpedia/LeftSideImage"; import LeftSideImage from "@/container/Corpedia/LeftSideImage";
import RightSideImage from "@/container/Corpedia/RightSideImage"; import RightSideImage from "@/container/Corpedia/RightSideImage";
import ConversionCode from "@/components/reuseables/ConversionCode/ConversionCode";
const banners = [ const banners = [
{ {
...@@ -221,7 +222,7 @@ const partners = [ ...@@ -221,7 +222,7 @@ const partners = [
}, },
]; ];
const TaPage = ({ tapage }) => { const TaPage = ({ tapage ,conversionData }) => {
const banners = [ const banners = [
{ {
imageSrc: cleanImage(tapage?.Banner?.Image?.url), imageSrc: cleanImage(tapage?.Banner?.Image?.url),
...@@ -240,9 +241,12 @@ const TaPage = ({ tapage }) => { ...@@ -240,9 +241,12 @@ const TaPage = ({ tapage }) => {
// console.log("clientlogo", clientlogo); // console.log("clientlogo", clientlogo);
const seo = tapage?.seo; const seo = tapage?.seo;
// console.log(seo, "seo") // console.log(seo, "seo")
const code = conversionData?.conversion;
return ( return (
<> <>
<Seo seo={seo} /> <Seo seo={seo} />
<ConversionCode code={code} />
<PageBanner banners={banners} /> <PageBanner banners={banners} />
...@@ -333,18 +337,33 @@ export async function getServerSideProps() { ...@@ -333,18 +337,33 @@ export async function getServerSideProps() {
], ],
}; };
const query2 = {
populate: ["conversion"],
};
const query1String = qs.stringify(query1, { const query1String = qs.stringify(query1, {
encodeValuesOnly: true, encodeValuesOnly: true,
}); });
const query12String = qs.stringify(query2, {
encodeValuesOnly: true,
});
const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/transaction-page?${query1String}`; const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/transaction-page?${query1String}`;
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 = await axios.get(endpoint1); const [response1, response2] = await Promise.all([
axios.get(endpoint1),
axios.get(endpoint2),
]);
const tapage = response1.data.data; const tapage = response1.data.data;
const conversionData = response2.data.data;
return { return {
props: { tapage }, props: { tapage , conversionData },
}; };
} catch (error) { } catch (error) {
console.log("Error", error); console.log("Error", error);
......
...@@ -7,8 +7,9 @@ import { cleanImage } from '@/layout/imageHandling'; ...@@ -7,8 +7,9 @@ import { cleanImage } from '@/layout/imageHandling';
import axios from 'axios'; import axios from 'axios';
import qs from 'qs'; import qs from 'qs';
import Seo from '@/components/reuseables/Seo/Seo'; import Seo from '@/components/reuseables/Seo/Seo';
import ConversionCode from '@/components/reuseables/ConversionCode/ConversionCode';
export default function Contact({ Contactpage }) { export default function Contact({ Contactpage ,conversionData }) {
// console.log("conatct", Contactpage) // console.log("conatct", Contactpage)
const banners = [ const banners = [
{ {
...@@ -22,10 +23,13 @@ export default function Contact({ Contactpage }) { ...@@ -22,10 +23,13 @@ export default function Contact({ Contactpage }) {
const seo = Contactpage?.seo; const seo = Contactpage?.seo;
// console.log(seo) // console.log(seo)
const code = conversionData?.conversion;
return ( return (
<> <>
<Seo seo={seo} /> <Seo seo={seo} />
<ConversionCode code={code} />
<PageBanner banners={banners} /> <PageBanner banners={banners} />
<ContactInfo /> <ContactInfo />
<ContactForm /> <ContactForm />
...@@ -44,19 +48,32 @@ export async function getServerSideProps() { ...@@ -44,19 +48,32 @@ export async function getServerSideProps() {
], ],
}; };
const query2 = {
populate: ["conversion"],
};
const query1String = qs.stringify(query1, { const query1String = qs.stringify(query1, {
encodeValuesOnly: true, encodeValuesOnly: true,
}); });
const query12String = qs.stringify(query2, {
encodeValuesOnly: true,
});
const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/conatct-page?${query1String}`; const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/conatct-page?${query1String}`;
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 = await axios.get(endpoint1); const [response1, response2] = await Promise.all([
axios.get(endpoint1),
axios.get(endpoint2),
]);
const Contactpage = response1.data.data; const Contactpage = response1.data.data;
const conversionData = response2.data.data;
return { return {
props: { Contactpage }, props: { Contactpage ,conversionData },
}; };
} catch (error) { } catch (error) {
console.log("Error", error); console.log("Error", error);
......
...@@ -11,11 +11,14 @@ import RightSideImage from "@/container/Corpedia/RightSideImage"; ...@@ -11,11 +11,14 @@ import RightSideImage from "@/container/Corpedia/RightSideImage";
import TableData from "@/components/reuseables/services/TableData"; import TableData from "@/components/reuseables/services/TableData";
import Details from "@/components/reuseables/services/Details"; import Details from "@/components/reuseables/services/Details";
import DownloadBtn from "@/components/reuseables/DownloadBtn"; import DownloadBtn from "@/components/reuseables/DownloadBtn";
import ConversionCode from "@/components/reuseables/ConversionCode/ConversionCode";
const details = ({ Corpedia }) => { const details = ({ Corpedia , conversionData }) => {
const introDeatils = Corpedia; const introDeatils = Corpedia;
// console.log("corpedia", Corpedia); // console.log("corpedia", Corpedia);
const dynamicdata = Corpedia[0]?.CorpediaDetails; const dynamicdata = Corpedia[0]?.CorpediaDetails;
const code = conversionData?.conversion;
// console.log("dynamicdata", dynamicdata); // console.log("dynamicdata", dynamicdata);
const banners = [ const banners = [
{ {
...@@ -31,7 +34,7 @@ const details = ({ Corpedia }) => { ...@@ -31,7 +34,7 @@ const details = ({ Corpedia }) => {
return ( return (
<> <>
<PageBanner banners={banners} /> <PageBanner banners={banners} />
<ConversionCode code={code} />
{/* <Background introdeatils ={introDeatils} /> */} {/* <Background introdeatils ={introDeatils} /> */}
<section className="corpedia-details-page ptb-100"> <section className="corpedia-details-page ptb-100">
{dynamicdata && {dynamicdata &&
...@@ -124,19 +127,31 @@ export async function getServerSideProps({ params }) { ...@@ -124,19 +127,31 @@ export async function getServerSideProps({ params }) {
}, },
}, },
}; };
const query2 = {
populate: ["conversion"],
};
const query1String = qs.stringify(query1, { const query1String = qs.stringify(query1, {
encodeValuesOnly: true, encodeValuesOnly: true,
}); });
const query12String = qs.stringify(query2, {
encodeValuesOnly: true,
});
const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/corpedias?${query1String}`; const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/corpedias?${query1String}`;
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 = await axios.get(endpoint1); const [response1, response2] = await Promise.all([
const Corpedia = response1.data.data; axios.get(endpoint1),
axios.get(endpoint2),
]);
const Corpedia = response1.data.data;
const conversionData = response2.data.data;
return { return {
props: { Corpedia }, props: { Corpedia , conversionData },
}; };
} catch (error) { } catch (error) {
console.log("Error", error); console.log("Error", error);
......
...@@ -15,6 +15,7 @@ import ReactPaginate from "react-paginate"; ...@@ -15,6 +15,7 @@ import ReactPaginate from "react-paginate";
import Seo from "@/components/reuseables/Seo/Seo"; import Seo from "@/components/reuseables/Seo/Seo";
import Pagination from "react-js-pagination"; import Pagination from "react-js-pagination";
import { fetchcodeList } from "@/redux/slices/mangerslice"; import { fetchcodeList } from "@/redux/slices/mangerslice";
import ConversionCode from "@/components/reuseables/ConversionCode/ConversionCode";
// const services = [ // const services = [
// { // {
...@@ -107,7 +108,7 @@ import { fetchcodeList } from "@/redux/slices/mangerslice"; ...@@ -107,7 +108,7 @@ import { fetchcodeList } from "@/redux/slices/mangerslice";
// }, // },
// ]; // ];
const CorpediaPage = ({ CorpediaData }) => { const CorpediaPage = ({ CorpediaData, conversionData }) => {
// console.log(CorpediaData,"CorpediaData") // console.log(CorpediaData,"CorpediaData")
const banners = [ const banners = [
{ {
...@@ -129,12 +130,14 @@ const CorpediaPage = ({ CorpediaData }) => { ...@@ -129,12 +130,14 @@ const CorpediaPage = ({ CorpediaData }) => {
const corpedialist = useSelector((state) => state.corpedialist.data); const corpedialist = useSelector((state) => state.corpedialist.data);
const tagmangerlist = useSelector((state) => state.tagmangerlist.data); const tagmangerlist = useSelector((state) => state.tagmangerlist.data);
console.log(tagmangerlist,"tagmangerlist") // console.log(tagmangerlist,"tagmangerlist")
// 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 = corpedialist?.slice(offset, offset + postsPerPage); const currentItems = corpedialist?.slice(offset, offset + postsPerPage);
const code = conversionData?.conversion;
// Handle page click // Handle page click
const handlePageClick = (pageNumber) => { const handlePageClick = (pageNumber) => {
...@@ -147,6 +150,8 @@ const CorpediaPage = ({ CorpediaData }) => { ...@@ -147,6 +150,8 @@ const CorpediaPage = ({ CorpediaData }) => {
return ( return (
<> <>
<Seo seo={seo} /> <Seo seo={seo} />
<ConversionCode code={code} />
<PageBanner banners={banners} /> <PageBanner banners={banners} />
<div className="corpedia-page-area pt-70 pb-100 bg-light"> <div className="corpedia-page-area pt-70 pb-100 bg-light">
...@@ -278,19 +283,30 @@ export const getStaticProps = async () => { ...@@ -278,19 +283,30 @@ export const getStaticProps = async () => {
"seo.schema", "seo.schema",
], ],
}; };
const query2 = {
populate: ["conversion"],
};
const query1String = qs.stringify(query1, { const query1String = qs.stringify(query1, {
encodeValuesOnly: true, encodeValuesOnly: true,
}); });
const query12String = qs.stringify(query2, {
encodeValuesOnly: true,
});
const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/corpedia-page?${query1String}`; const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/corpedia-page?${query1String}`;
// console.log(`Final corpedia: ${endpoint1}`); const endpoint2 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/google-manger?${query12String}`;
// console.log(`Final url1: ${endpoint2}`);
const response1 = await axios.get(endpoint1); const [response1, response2] = await Promise.all([
axios.get(endpoint1),
axios.get(endpoint2),
]);
const CorpediaData = response1.data.data; const CorpediaData = response1.data.data;
const conversionData = response2.data.data;
return { return {
props: { CorpediaData }, props: { CorpediaData,conversionData },
}; };
} catch (error) { } catch (error) {
console.log("Error", error); console.log("Error", error);
......
...@@ -20,7 +20,7 @@ import ConversionCode from "@/components/reuseables/ConversionCode/ConversionCod ...@@ -20,7 +20,7 @@ import ConversionCode from "@/components/reuseables/ConversionCode/ConversionCod
const inter = Inter({ subsets: ["latin"] }); const inter = Inter({ subsets: ["latin"] });
export default function Home({homepage,conversionData }) { export default function Home({ homepage, conversionData }) {
const dispatch = useDispatch(); const dispatch = useDispatch();
// console.log("homepage", homepage); // console.log("homepage", homepage);
const banner = homepage?.Banner; const banner = homepage?.Banner;
...@@ -31,31 +31,30 @@ export default function Home({homepage,conversionData }) { ...@@ -31,31 +31,30 @@ export default function Home({homepage,conversionData }) {
const functionarea = homepage?.FunctionalAreas; const functionarea = homepage?.FunctionalAreas;
const industry = homepage?.Industry; const industry = homepage?.Industry;
const Clientel = homepage?.Clientel; const Clientel = homepage?.Clientel;
const code = conversionData?.conversion;
const code = conversionData?.conversion
useEffect(() => { useEffect(() => {
dispatch(fetchBlogList()); dispatch(fetchBlogList());
dispatch(fetchServiceList()); dispatch(fetchServiceList());
}, []); }, []);
const blogData = useSelector((state) => state.bloglist.data) const blogData = useSelector((state) => state.bloglist.data);
const serviceData = useSelector((state) => state.servicelist.data) const serviceData = useSelector((state) => state.servicelist.data);
console.log(conversionData, "data") // console.log(conversionData, "data");
const seo = homepage?.seo; const seo = homepage?.seo;
return ( return (
<> <>
<Seo seo={seo} /> <Seo seo={seo} />
<ConversionCode code={code} /> <ConversionCode code={code} />
<HomeBanner banner={banner} /> <HomeBanner banner={banner} />
<AboutContent Knowledges={Knowledgeshack} KnowledgeTab={KnowledgeTab} /> <AboutContent Knowledges={Knowledgeshack} KnowledgeTab={KnowledgeTab} />
<People people={people} /> <People people={people} />
<ClientService service={serviceData} /> <ClientService service={serviceData} />
<AreasofExpertise Areas={Areas} /> <AreasofExpertise Areas={Areas} />
<FunctionalAreas functionarea={functionarea} /> <FunctionalAreas functionarea={functionarea} />
<Industries industry={industry} /> <Industries industry={industry} />
<HomeBlog data={blogData}/> <HomeBlog data={blogData} />
<div className="ptb-100 bg-fafafa"> <div className="ptb-100 bg-fafafa">
<PartnerSlider Clientel={Clientel} /> <PartnerSlider Clientel={Clientel} />
</div> </div>
...@@ -91,9 +90,7 @@ export async function getServerSideProps() { ...@@ -91,9 +90,7 @@ export async function getServerSideProps() {
}; };
const query2 = { const query2 = {
populate: [ populate: ["conversion"],
"conversion",
]
}; };
const query1String = qs.stringify(query1, { const query1String = qs.stringify(query1, {
...@@ -105,7 +102,7 @@ export async function getServerSideProps() { ...@@ -105,7 +102,7 @@ export async function getServerSideProps() {
const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/home?${query1String}`; const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/home?${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: ${endpoint2}`); // console.log(`Final url1: ${endpoint2}`);
const [response1, response2] = await Promise.all([ const [response1, response2] = await Promise.all([
axios.get(endpoint1), axios.get(endpoint1),
...@@ -116,7 +113,7 @@ export async function getServerSideProps() { ...@@ -116,7 +113,7 @@ export async function getServerSideProps() {
const conversionData = response2.data.data; const conversionData = response2.data.data;
return { return {
props: { homepage, conversionData }, props: { homepage, conversionData },
}; };
} catch (error) { } catch (error) {
console.log("Error", error); console.log("Error", error);
......
import React from "react"; import React from "react";
import PageBanner from "@/components/reuseables/PageBanner"; import PageBanner from "@/components/reuseables/PageBanner";
import Education from "@/container/IndustryFocus/Education";
import Hospitality from "@/container/IndustryFocus/Hospitality";
import LifeSciences from "@/container/IndustryFocus/LifeSciences";
import RealEstate from "@/container/IndustryFocus/RealEstate";
import Technology from "@/container/IndustryFocus/Technology";
import axios from 'axios'; import axios from 'axios';
import qs from 'qs'; import qs from 'qs';
import { cleanImage } from "@/layout/imageHandling"; import { cleanImage } from "@/layout/imageHandling";
...@@ -12,9 +7,10 @@ import IndustryOverview from "@/container/IndustryFocus/IndustryOverview"; ...@@ -12,9 +7,10 @@ import IndustryOverview from "@/container/IndustryFocus/IndustryOverview";
import IndustryTab from "@/container/IndustryFocus/IndustryTab"; import IndustryTab from "@/container/IndustryFocus/IndustryTab";
import Seo from "@/components/reuseables/Seo/Seo"; import Seo from "@/components/reuseables/Seo/Seo";
import IndustryClientele from "@/components/reuseables/IndustryClientele"; import IndustryClientele from "@/components/reuseables/IndustryClientele";
import ConversionCode from "@/components/reuseables/ConversionCode/ConversionCode";
const industry = ({ IndustryPage }) => { const industry = ({ IndustryPage , conversionData }) => {
console.log("conatct", IndustryPage) console.log("conatct", IndustryPage)
const dynamicdata = IndustryPage?.IndustryDetails; const dynamicdata = IndustryPage?.IndustryDetails;
console.log(dynamicdata , "dynamicdata") console.log(dynamicdata , "dynamicdata")
...@@ -28,6 +24,7 @@ const industry = ({ IndustryPage }) => { ...@@ -28,6 +24,7 @@ const industry = ({ IndustryPage }) => {
}, },
]; ];
const seo = IndustryPage?.seo; const seo = IndustryPage?.seo;
const code = conversionData?.conversion;
// console.log(seo, "seo") // console.log(seo, "seo")
...@@ -36,7 +33,8 @@ const industry = ({ IndustryPage }) => { ...@@ -36,7 +33,8 @@ const industry = ({ IndustryPage }) => {
<> <>
<Seo seo={seo} /> <Seo seo={seo} />
<PageBanner banners={banners} /> <PageBanner banners={banners} />
<ConversionCode code={code} />
<section className="industry-details-page"> <section className="industry-details-page">
{dynamicdata && {dynamicdata &&
dynamicdata?.map((section, index) => { dynamicdata?.map((section, index) => {
...@@ -90,18 +88,32 @@ export async function getServerSideProps() { ...@@ -90,18 +88,32 @@ export async function getServerSideProps() {
], ],
}; };
const query2 = {
populate: ["conversion"],
};
const query1String = qs.stringify(query1, { const query1String = qs.stringify(query1, {
encodeValuesOnly: true, encodeValuesOnly: true,
}); });
const query12String = qs.stringify(query2, {
encodeValuesOnly: true,
});
const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/industry-page?${query1String}`; const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/industry-page?${query1String}`;
console.log(`Final url: ${endpoint1}`); const endpoint2 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/google-manger?${query12String}`;
// console.log(`Final url: ${endpoint1}`);
const response1 = await axios.get(endpoint1); const [response1, response2] = await Promise.all([
axios.get(endpoint1),
axios.get(endpoint2),
]);
const IndustryPage = response1.data.data; const IndustryPage = response1.data.data;
const conversionData = response2.data.data;
return { return {
props: { IndustryPage }, props: { IndustryPage , conversionData },
}; };
} catch (error) { } catch (error) {
console.log("Error", error); console.log("Error", error);
......
...@@ -14,10 +14,11 @@ import { fetchCorpediaList } from "@/redux/slices/corpediaslice"; ...@@ -14,10 +14,11 @@ import { fetchCorpediaList } from "@/redux/slices/corpediaslice";
import { fetchTaxwireList } from "@/redux/slices/taxwireslice" import { fetchTaxwireList } from "@/redux/slices/taxwireslice"
import { fetchBudgetList } from "@/redux/slices/budgetslice"; import { fetchBudgetList } from "@/redux/slices/budgetslice";
import Seo from "@/components/reuseables/Seo/Seo"; import Seo from "@/components/reuseables/Seo/Seo";
import ConversionCode from "@/components/reuseables/ConversionCode/ConversionCode";
export default function Home({ Knowledgepage }) { export default function Home({ Knowledgepage, conversionData }) {
const dispatch = useDispatch(); const dispatch = useDispatch();
useEffect(() => { useEffect(() => {
...@@ -31,13 +32,15 @@ export default function Home({ Knowledgepage }) { ...@@ -31,13 +32,15 @@ export default function Home({ Knowledgepage }) {
const corpedialist = useSelector((state) => state.corpedialist.data) const corpedialist = useSelector((state) => state.corpedialist.data)
const taxwirelist = useSelector((state) => state.taxwirelist.data) const taxwirelist = useSelector((state) => state.taxwirelist.data)
const budgetlist = useSelector((state) => state.budgetlist.data) const budgetlist = useSelector((state) => state.budgetlist.data)
const code = conversionData?.conversion;
// console.log(budgetlist, "budgetlist") // console.log(budgetlist, "budgetlist")
// console.log("Knowledgepage", Knowledgepage); // console.log("Knowledgepage", Knowledgepage);
const Overview = Knowledgepage?.Overview const Overview = Knowledgepage?.Overview
const corpedia = Knowledgepage?.Corpedia const corpedia = Knowledgepage?.Corpedia
const taxWire = Knowledgepage?.Taxwire const taxWire = Knowledgepage?.Taxwire
const Budgetpanorama = Knowledgepage?.Budgetpanorama const Budgetpanorama = Knowledgepage?.Budgetpanorama
console.log(conversionData, "data");
const banners = [ const banners = [
{ {
...@@ -56,6 +59,8 @@ export default function Home({ Knowledgepage }) { ...@@ -56,6 +59,8 @@ export default function Home({ Knowledgepage }) {
return ( return (
<> <>
<Seo seo={seo} /> <Seo seo={seo} />
<ConversionCode code={code} />
<PageBanner banners={banners} /> <PageBanner banners={banners} />
<KnowledgeContent Overview={Overview} /> <KnowledgeContent Overview={Overview} />
<Corpedia Corpedia={corpedia} corpedialist={corpedialist} /> <Corpedia Corpedia={corpedia} corpedialist={corpedialist} />
...@@ -82,19 +87,33 @@ export async function getServerSideProps() { ...@@ -82,19 +87,33 @@ export async function getServerSideProps() {
"seo.schema", "seo.schema",
], ],
}; };
const query2 = {
populate: ["conversion"],
};
const query1String = qs.stringify(query1, { const query1String = qs.stringify(query1, {
encodeValuesOnly: true, encodeValuesOnly: true,
}); });
const query12String = qs.stringify(query2, {
encodeValuesOnly: true,
});
const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/knowledgeshack?${query1String}`; const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/knowledgeshack?${query1String}`;
// console.log(`Final url: ${endpoint1}`); const endpoint2 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/google-manger?${query12String}`;
// console.log(`Final url3: ${endpoint2}`);
const [response1, response2] = await Promise.all([
axios.get(endpoint1),
axios.get(endpoint2),
]);
const response1 = await axios.get(endpoint1);
const Knowledgepage = response1.data.data; const Knowledgepage = response1.data.data;
const conversionData = response2.data.data;
return { return {
props: { Knowledgepage }, props: { Knowledgepage,conversionData },
}; };
} catch (error) { } catch (error) {
console.log("Error", error); console.log("Error", error);
......
...@@ -8,8 +8,9 @@ import qs from "qs"; ...@@ -8,8 +8,9 @@ import qs from "qs";
import axios from "axios"; import axios from "axios";
import { cleanImage } from "@/layout/imageHandling"; import { cleanImage } from "@/layout/imageHandling";
import Seo from "@/components/reuseables/Seo/Seo"; import Seo from "@/components/reuseables/Seo/Seo";
import ConversionCode from "@/components/reuseables/ConversionCode/ConversionCode";
const people = ({peoplepage}) => { const people = ({peoplepage , conversionData}) => {
const banners = [ const banners = [
{ {
imageSrc: cleanImage(peoplepage?.Banner?.Image?.url), imageSrc: cleanImage(peoplepage?.Banner?.Image?.url),
...@@ -29,9 +30,13 @@ const people = ({peoplepage}) => { ...@@ -29,9 +30,13 @@ const people = ({peoplepage}) => {
// console.log("AdvisoryBoard",Advisory) // console.log("AdvisoryBoard",Advisory)
const seo = peoplepage?.seo; const seo = peoplepage?.seo;
// console.log(seo ) // console.log(seo )
const code = conversionData?.conversion;
return ( return (
<> <>
<Seo seo={seo} /> <Seo seo={seo} />
<ConversionCode code={code} />
<PageBanner banners={banners} /> <PageBanner banners={banners} />
<AboutPeople aboutPeople ={aboutPeople}/> <AboutPeople aboutPeople ={aboutPeople}/>
<AdvisoryBoard advisoryboard ={Advisory}/> <AdvisoryBoard advisoryboard ={Advisory}/>
...@@ -63,18 +68,32 @@ export async function getServerSideProps() { ...@@ -63,18 +68,32 @@ export async function getServerSideProps() {
], ],
}; };
const query2 = {
populate: ["conversion"],
};
const query1String = qs.stringify(query1, { const query1String = qs.stringify(query1, {
encodeValuesOnly: true, encodeValuesOnly: true,
}); });
const query12String = qs.stringify(query2, {
encodeValuesOnly: true,
});
const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/people?${query1String}`; const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/people?${query1String}`;
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 = await axios.get(endpoint1); const [response1, response2] = await Promise.all([
axios.get(endpoint1),
axios.get(endpoint2),
]);
const peoplepage = response1.data.data; const peoplepage = response1.data.data;
const conversionData = response2.data.data;
return { return {
props: { peoplepage }, props: { peoplepage , conversionData },
}; };
} catch (error) { } catch (error) {
console.log("Error", error); console.log("Error", error);
......
...@@ -10,8 +10,9 @@ import LeftSideImage from "@/container/Corpedia/LeftSideImage"; ...@@ -10,8 +10,9 @@ import LeftSideImage from "@/container/Corpedia/LeftSideImage";
import RightSideImage from "@/container/Corpedia/RightSideImage"; import RightSideImage from "@/container/Corpedia/RightSideImage";
import TableData from "@/components/reuseables/services/TableData"; import TableData from "@/components/reuseables/services/TableData";
import Details from "@/components/reuseables/services/Details"; import Details from "@/components/reuseables/services/Details";
import ConversionCode from "@/components/reuseables/ConversionCode/ConversionCode";
const details = ({ Taxwire }) => { const details = ({ Taxwire , conversionData }) => {
const introDeatils = Taxwire; const introDeatils = Taxwire;
// console.log("taxwire", introDeatils); // console.log("taxwire", introDeatils);
const dynamicdata = Taxwire[0]?.TaxwireDetails; const dynamicdata = Taxwire[0]?.TaxwireDetails;
...@@ -26,9 +27,12 @@ const details = ({ Taxwire }) => { ...@@ -26,9 +27,12 @@ const details = ({ Taxwire }) => {
}, },
// Add more banners as needed // Add more banners as needed
]; ];
const code = conversionData?.conversion;
return ( return (
<> <>
<PageBanner banners={banners} /> <PageBanner banners={banners} />
<ConversionCode code={code} />
<section className="Taxwire-details-page"> <section className="Taxwire-details-page">
...@@ -116,18 +120,32 @@ export async function getServerSideProps({ params }) { ...@@ -116,18 +120,32 @@ export async function getServerSideProps({ params }) {
}, },
}; };
const query2 = {
populate: ["conversion"],
};
const query1String = qs.stringify(query1, { const query1String = qs.stringify(query1, {
encodeValuesOnly: true, encodeValuesOnly: true,
}); });
const query12String = qs.stringify(query2, {
encodeValuesOnly: true,
});
const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/taxwires?${query1String}`; const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/taxwires?${query1String}`;
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 = await axios.get(endpoint1); const [response1, response2] = await Promise.all([
axios.get(endpoint1),
axios.get(endpoint2),
]);
const Taxwire = response1.data.data; const Taxwire = response1.data.data;
const conversionData = response2.data.data;
return { return {
props: { Taxwire }, props: { Taxwire, conversionData },
}; };
} catch (error) { } catch (error) {
console.log("Error", error); console.log("Error", error);
......
...@@ -15,213 +15,9 @@ import axios from "axios"; ...@@ -15,213 +15,9 @@ import axios from "axios";
import ReactPaginate from "react-paginate"; import ReactPaginate from "react-paginate";
import Seo from "@/components/reuseables/Seo/Seo"; import Seo from "@/components/reuseables/Seo/Seo";
import Pagination from "react-js-pagination"; import Pagination from "react-js-pagination";
import ConversionCode from "@/components/reuseables/ConversionCode/ConversionCode";
// const services = [ const TaxWire = ({ TaxwireData ,conversionData }) => {
// {
// id: 0,
// serviceTitle: "Supreme Court of India's Safari Retreats' Verdict: TaxWire 25.10.2024",
// serviceShortDescription: "The recent Indian Supreme Court judgement in the Chief Commissioner of Central Goods and Service Tax vs. Safari Retreats Private Limited & Others1 case is a landmark judgement under the Goods & Services Tax (GST) law in India,",
// date: "25 Oct 2024",
// pdfUrl: "/images/knoweledge/pdf/taxwire/TaxWire_25.10.2024.pdf",
// },
// {
// id: 1,
// serviceTitle: "Mismatch in year of taxation of Income and TDS Credit – Form 71 to the relief",
// serviceShortDescription: "The Income Tax Law in India requires that income from a particular assessment year be subjected to tax in that assessment year.",
// serviceDetailsUrl: "/services/details",
// date: "21 Sep 2023",
// pdfUrl: "/images/knoweledge/pdf/taxwire/Mismatch_in_year_of_taxation_of_Income_and_TDS_Credit_–_Form_71_to_the_relief.pdf",
// },
// {
// id: 2,
// serviceTitle: "GST on Renting of residential property to registered person",
// serviceShortDescription: "For more than 15 years, renting of property has been covered under either service taxor Goods and Service Tax (GST). Broadly,the Government's intention seemed clear –tax commercial rentals and exemptresidential rentals. ",
// serviceDetailsUrl: "/services/details",
// date: "04 Aug 2022",
// pdfUrl: "/images/knoweledge/pdf/taxwire/GST_on_Renting_of_residential_property_to_registered_person.pdf",
// },
// {
// id: 3,
// serviceTitle: "Remission of Duties and Taxes on Exported Products (RoDTEP)",
// serviceShortDescription: "RoDTEP rates and scheme details have been announced by the Ministry of Commerce and Industry by making suitable amendments to chapter 4 of the Foreign Trade Policy (FTP) in the notification (19/2015-2020) dated 17th August 2021.",
// serviceDetailsUrl: "/services/details",
// date: "25 Aug 2021",
// pdfUrl: "/images/knoweledge/pdf/taxwire/Remission_of_Duties_and_Taxes_on_Exported_Products_(RoDTEP).pdf",
// },
// {
// id: 4,
// serviceTitle: "Section 2(42C) of the Income-tax Act, 1961(IT Act) defines 'slump sale' as transfer ofone or more undertakings for a lumpsumconsideration without the value beingassigned to individual assets and liabilities in such cases.",
// serviceShortDescription: "Section 2(42C) of the Income-tax Act, 1961 (IT Act) defines 'slump sale' as transfer of one or more undertakings for a lumpsum consideration without the value being assigned to individual assets and liabilities in such cases.",
// serviceDetailsUrl: "/services/details",
// date: "07 Jun 2021",
// pdfUrl: "/images/knoweledge/pdf/taxwire/PDF1629220424.pdf",
// },
// {
// id: 5,
// serviceTitle: "Consideration for sale of software - Royalty or not: Delhi tax tribunal ruling",
// serviceShortDescription: "It is a known fact that buying licenses for software usage is a very common business transaction. It is also fairly common for Indian entities to buy suchsoftware from foreign companies. ",
// serviceDetailsUrl: "/services/details",
// date: "19 Jan 2021",
// pdfUrl: "/images/knoweledge/pdf/taxwire/Delhi_High_Court_ruling_on_Constitutional_Validity_of_Income_Computation_and_Disclosure_Standards_(ICDS).pdf",
// },
// {
// id: 6,
// serviceTitle: "Finance Act, 2020 – Passed with multiple amendments",
// serviceShortDescription: "Indian Finance Minister had presented the Budget containing the Finance Bill, 2020 on 1st February, 2020. This was tabled in both the houses of Parliament and wassupposed to be discussed. ",
// serviceDetailsUrl: "/services/details",
// date: "02 Apr 2020",
// pdfUrl: "/images/knoweledge/pdf/taxwire/Finance_Act,_2020_–_Passed_with_multiple_amendments.pdf",
// },
// {
// id: 7,
// serviceTitle: "Direct Tax Vivad se Vishwas Act, 2020",
// serviceShortDescription: "The Finance Minister introduced the Direct Tax Vivad se Vishwas Bill, 2020('DTVSV' or 'the scheme') in the Parliament on 05-02-2020 for providingresolution of disputed tax and for mattersconnected therewith and incidentalthereto.",
// serviceDetailsUrl: "/services/details",
// date: "30 Mar 2020",
// pdfUrl: "/images/knoweledge/pdf/taxwire/Direct_Tax_Vivad_se_Vishwas_Act,_2020.pdf",
// },
// {
// id: 8,
// serviceTitle: "Key highlights of 31st and 32nd GST Council Meet",
// serviceShortDescription: "As you all are aware, w.e.f 01st July 2017, India moved into a comprehensive Indirect tax regimeunder the Goods and Services Tax (GST) Law. GST Council is a constitutional body for makingrecommendations to the Union and State Government on issues related to Goods and Service Tax.",
// serviceDetailsUrl: "/services/details",
// date: "23 Jan 2019",
// pdfUrl: "/images/knoweledge/pdf/taxwire/Key_highlights_of_31st_and_32nd_GST_Council_Meet.pdf",
// },
// {
// id: 9,
// serviceTitle: "Mumbai tax tribunal holds that 'Conversion of CCPS into equity shares is Not taxable'",
// serviceShortDescription: "The provisions of section 45(1) of the Income Tax Act, 1961 (the Act) brings into tax the profits or gains arising from the transfer of capital asset under the head'Capital Gains'. Both the terms transfer and capital asset has been defined under the Act.",
// serviceDetailsUrl: "/services/details",
// date: "16 Jan 2019",
// pdfUrl: "/images/knoweledge/pdf/taxwire/Mumbai_tax_tribunal_holds_that_'Conversion_of_CCPS_into_equity_shares_is_Not_taxable'.pdf",
// },
// {
// id: 10,
// serviceTitle: "Tax Benefit for Start-ups – an overview",
// serviceShortDescription: "To keep a check on the closely held companies from bringing in undisclosed income into the company by issuing the shares at abnormal premium, section 56(2)(viib) was introduced into the Income Tax Act, 1961(the Act) by the Finance Act2012. ",
// serviceDetailsUrl: "/services/details",
// date: "24 Apr 2018",
// pdfUrl: "/images/knoweledge/pdf/taxwire/Tax_Benefit_for_Start-ups_–_an_overview.pdf",
// },
// {
// id: 11,
// serviceTitle: "Changes in the ITR Forms AY 2018-19",
// serviceShortDescription: "Income Tax filings in India are based on self-assessment mechanism. Meaning, every person earning income in India and who is required to file tax returns, is required to compute his income and tax thereon. He needs to remit the tax and then file the said return with the income tax authority within the said date",
// serviceDetailsUrl: "/services/details",
// date: "17 Apr 2018",
// pdfUrl: "/images/knoweledge/pdf/taxwire/Changes_in_the_ITR_Forms_AY_2018-19.pdf",
// },
// {
// id: 12,
// serviceTitle: "Delhi High Court ruling on Constitutional Validity of Income Computation and Disclosure Standards (ICDS)",
// serviceShortDescription: "'Accountancy is a matter of taste. One tax payer may be conservative and others may not.' - So was told by Lord Greene in Henriksen (Inspector of Taxes) vs GraftonHotel Ltd",
// serviceDetailsUrl: "/services/details",
// date: "23 Nov 2017",
// pdfUrl: "/images/knoweledge/pdf/taxwire/Delhi_High_Court_ruling_on_Constitutional_Validity_of_Income_Computation_and_Disclosure_Standards_(ICDS).pdf",
// },
// {
// id: 13,
// serviceTitle: "Green or not Green?",
// serviceShortDescription: "“Agriculture is the backbone of the Indian economy”. This is a statement that all of us are familiar with right from elementary school. Rightly so, as agriculture contributes around 22% to our country's",
// serviceDetailsUrl: "/services/details",
// date: "12 Sep 2017",
// pdfUrl: "/images/knoweledge/pdf/taxwire/Green_or_not_Green.pdf",
// },
// {
// id: 14,
// serviceTitle: "Penny wise, Pound foolish!",
// serviceShortDescription: "It has been constantly the effort of the Government to encourage the habit of savings and investment amongst its people and to ensure the surplus funds ",
// serviceDetailsUrl: "/services/details",
// date: "16 Jun 2017",
// pdfUrl: "/images/knoweledge/pdf/taxwire/Penny_wise,_Pound_foolish!.pdf",
// },
// {
// id: 15,
// serviceTitle: "Changes in the ITR Forms AY 2017-18",
// serviceShortDescription: "The year 2016-17 saw a lot of steps taken by the Government of India to ensure that black money is subject to taxes and the revenue of the government is secured. ",
// serviceDetailsUrl: "/services/details",
// date: "08 Apr 2017",
// pdfUrl: "/images/knoweledge/pdf/taxwire/Changes_in_the_ITR_Forms_AY_2017-18.pdf",
// },
// {
// id: 16,
// serviceTitle: "Bollywood Badshah's tryst with the tax department!",
// serviceShortDescription: "Mr. Shahrukh Khan (hereinafter referred to as Mr. Khan/the assessee for brevity) is a well-known name in the film industry and also referred to as Badshah ",
// serviceDetailsUrl: "/services/details",
// date: "07 Apr 2017",
// pdfUrl: "/images/knoweledge/pdf/taxwire/Bollywood_Badshah_s_tryst_with_the_tax_department!.pdf",
// },
// {
// id: 17,
// serviceTitle: "India enters into protocol amending Singapore DTAA",
// serviceShortDescription: "It has always been a matter of dispute in India whether alienation of shares of Indian companies by companies located in tax jurisdictions like Mauritius or Cyprus can avail the benefit of treaty.",
// serviceDetailsUrl: "/services/details",
// date: "09 Jan 2017",
// pdfUrl: "/images/knoweledge/pdf/taxwire/India_enters_into_protocol_amending_Singapore_DTAA.pdf",
// },
// {
// id: 18,
// serviceTitle: "Update on Section 44AD & Section 44ADA of Income Tax Act, 1961",
// serviceShortDescription: "This communication is to apprise you of some amendment that has happened to Income Tax act relating to professional starting FY 2016-17. The amendment will apply to taxpayers engaged in specified profession like:",
// serviceDetailsUrl: "/services/details",
// date: "23 Dec 2016",
// pdfUrl: "/images/knoweledge/pdf/taxwire/Update_on_Section_44AD_&_Section_44ADA_of_Income_Tax_Act,_1961.pdf",
// },
// {
// id: 19,
// serviceTitle: "Opportunity hardly ever knocks twice!",
// serviceShortDescription: "In light of the recent developments in the administration of the country, with the introduction of the Income Declaration scheme,",
// serviceDetailsUrl: "/services/details",
// date: "21 Dec 2016",
// pdfUrl: "/images/knoweledge/pdf/taxwire/Opportunity_hardly_ever_knocks_twice!.pdf",
// },
// {
// id: 20,
// serviceTitle: "Relaxation for Non-residents from obtaining PAN",
// serviceShortDescription: "The requirement to have a Permanent Account Number (PAN) for the purpose of Income Tax Act was first introduced in 1976. ",
// serviceDetailsUrl: "/services/details",
// date: "09 Jul 2016",
// pdfUrl: "/images/knoweledge/pdf/taxwire/Relaxation_for_Non_residents_from_obtaining_PAN.pdf",
// },
// {
// id: 21,
// serviceTitle: "Government frees 'Startup' from 'Angel Tax'",
// serviceShortDescription: "Infusing unaccounted money into closely held companies by issuing shares at abnormal premiums was a practice that prevailed as a method to convert unaccounted money into accounted money. In order to curb such practice, the",
// serviceDetailsUrl: "/services/details",
// date: "02 Jul 2016",
// pdfUrl: "/images/knoweledge/pdf/taxwire/Government_frees_'Startup'_from_'Angel_Tax'.pdf",
// },
// {
// id: 22,
// serviceTitle: "TDS and TCS amendments applicable from 1st June, 2016",
// serviceShortDescription: "The Finance Act, 2016 has brought changes in rates and limits for withholding as well as collection of taxes. These changes are applicable from 1st June, 2016. We have tried to summarise these changes as below",
// serviceDetailsUrl: "/services/details",
// date: "01 Jun 2016",
// pdfUrl: "/images/knoweledge/pdf/taxwire/TDS_and_TCS_amendments_applicable_from_1st_June,_2016.pdf",
// },
// {
// id: 23,
// serviceTitle: "Compliances for Foreign Remittances Rationalized",
// serviceShortDescription: "Section 195 of the Income Tax Act, 1961 mandates withholding of taxes from payments being made to a non-resident ifsuch incomes is taxable in India.",
// serviceDetailsUrl: "/services/details",
// date: "25 Mar 2016",
// pdfUrl: "/images/knoweledge/pdf/taxwire/Compliances_for_Foreign_Remittances_Rationalized.pdf",
// },
// {
// id: 24,
// serviceTitle: "Madras High Court's ruling on Taxation of unclaimed trading liability of discontinued business",
// serviceShortDescription: "When a person claims allowance or deduction in respect of losses, expenditures or trading liability in the earlier years and subsequently he obtainsany benefit/recovery/remission/cessation with respect to such allowances or deductions, such benefit is deemed to be the profits and gains from business or profession u/s 41(1) of the Income Tax Act, 1961 (the Act)",
// serviceDetailsUrl: "/services/details",
// date: "26 Apr 2019",
// pdfUrl: "/images/knoweledge/pdf/taxwire/Madras_High_Court`s_ruling_on_Taxation_of_unclaimed_trading_liability_of_discontinued_business.pdf",
// },
// ];
const TaxWire = ({ TaxwireData }) => {
const banners = [ const banners = [
{ {
imageSrc: cleanImage(TaxwireData?.Banner?.Image?.url), imageSrc: cleanImage(TaxwireData?.Banner?.Image?.url),
...@@ -231,33 +27,34 @@ const TaxWire = ({ TaxwireData }) => { ...@@ -231,33 +27,34 @@ const TaxWire = ({ TaxwireData }) => {
activePageText: TaxwireData?.Banner?.Heading, activePageText: TaxwireData?.Banner?.Heading,
}, },
]; ];
const dispatch = useDispatch(); const dispatch = useDispatch();
useEffect(() => { useEffect(() => {
dispatch(fetchTaxwireList()); dispatch(fetchTaxwireList());
}, []); }, []);
const taxwirelist = useSelector((state) => state.taxwirelist.data);
// Pagination setup const taxwirelist = useSelector((state) => state.taxwirelist.data);
const code = conversionData?.conversion;
const seo = TaxwireData?.seo;
// Pagination setup // Pagination setup
const [currentPage, setCurrentPage] = useState(1); // Start at page 1 const [currentPage, setCurrentPage] = useState(1);
const postsPerPage = 6; // Number of items per page const postsPerPage = 6;
const offset = (currentPage - 1) * postsPerPage; // Calculate offset const offset = (currentPage - 1) * postsPerPage;
const currentItems = taxwirelist?.slice(offset, offset + postsPerPage); const currentItems = taxwirelist?.slice(offset, offset + postsPerPage);
// Handle page click
const handlePageClick = (pageNumber) => { const handlePageClick = (pageNumber) => {
setCurrentPage(pageNumber); // Update current page setCurrentPage(pageNumber);
}; };
const seo = TaxwireData?.seo;
// console.log(seo)
return ( return (
<> <>
<Seo seo={seo} /> <Seo seo={seo} />
<ConversionCode code={code} />
<PageBanner banners={banners} /> <PageBanner banners={banners} />
<div className="tax-wire-page-area pt-70 pb-100 bg-light "> <div className="tax-wire-page-area pt-70 pb-100 bg-light ">
<Container> <Container>
<div className="section-title"> <div className="section-title">
...@@ -390,18 +187,31 @@ export async function getServerSideProps() { ...@@ -390,18 +187,31 @@ export async function getServerSideProps() {
], ],
}; };
const query2 = {
populate: ["conversion"],
};
const query1String = qs.stringify(query1, { const query1String = qs.stringify(query1, {
encodeValuesOnly: true, encodeValuesOnly: true,
}); });
const query12String = qs.stringify(query2, {
encodeValuesOnly: true,
});
const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/taxwire-page?${query1String}`; const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/taxwire-page?${query1String}`;
console.log(`Final url: ${endpoint1}`); const endpoint2 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/google-manger?${query12String}`;
console.log(`Final url: ${endpoint2}`);
const response1 = await axios.get(endpoint1); const [response1, response2] = await Promise.all([
axios.get(endpoint1),
axios.get(endpoint2),
]);
const TaxwireData = response1.data.data; const TaxwireData = response1.data.data;
const conversionData = response2.data.data;
return { return {
props: { TaxwireData }, props: { TaxwireData ,conversionData },
}; };
} catch (error) { } catch (error) {
console.log("Error", error); console.log("Error", error);
......
...@@ -3978,7 +3978,7 @@ ...@@ -3978,7 +3978,7 @@
} }
.fuctional-areas { .fuctional-areas {
height: 45vh; height: 65vh;
} }
.method-one-above-img { .method-one-above-img {
margin-top: 13vw; margin-top: 13vw;
...@@ -4093,12 +4093,12 @@ ...@@ -4093,12 +4093,12 @@
line-height: 1.3; line-height: 1.3;
} }
.fuctional-areas { .fuctional-areas {
min-height: 36vh; min-height: 40vh;
/* max-width: fit-content; */ /* max-width: fit-content; */
height: 83vh; height: 83vh;
} }
.fuctional-areas { .fuctional-areas {
height: 40vh; height: 45vh;
} }
/* cfo services */ /* cfo services */
.method-one-above-img { .method-one-above-img {
...@@ -4117,7 +4117,7 @@ height: 40vh; ...@@ -4117,7 +4117,7 @@ height: 40vh;
/* Add your styles here */ /* Add your styles here */
.fuctional-areas{ .fuctional-areas{
height: 63vh; height: 80vh;
} }
.single-services-box .content{ .single-services-box .content{
/* height: 42vh; */ /* height: 42vh; */
......
...@@ -8159,7 +8159,7 @@ h3.sub-title { ...@@ -8159,7 +8159,7 @@ h3.sub-title {
} }
.fuctional-areas { .fuctional-areas {
height: 36vh; height: 48vh;
/* max-width: fit-content; */ /* max-width: fit-content; */
} }
.area_expertise{ .area_expertise{
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!