Commit 92810d73 by sujata

changes update

1 parent 7aabd05d
import Image from "next/image"; import Image from "next/image";
import React from "react"; import React from "react";
import { Col, Container, Row } from "react-bootstrap"; import { Col, Container, Form, Row } from "react-bootstrap";
import Heading from "./Heading"; import Heading from "./Heading";
import { motion } from "framer-motion"; import { motion } from "framer-motion";
import { slideFromLeft } from "./variants"; import { slideFromLeft } from "./variants";
import { useRouter } from "next/router";
import { useForm } from "react-hook-form";
import axios from "axios";
const CallBackRequest = () => { const CallBackRequest = () => {
const {
handleSubmit,
control,
formState: { errors },
register,
reset,
} = useForm({
mode: "onBlur",
});
// email api
const router = useRouter();
const onSubmit = async (data) => {
const leadData = {
mobilenumber: data.Mobile,
email: data.Email,
message: data.AdditionalMessage || "",
name: data.Name,
service: data.service,
source: data.source,
};
console.log(leadData, "form-data");
try {
const response = await axios.post("/api/homegooglesheet", leadData, {
headers: {
"Content-Type": "application/json",
},
});
console.log("Google Sheet API response:", response?.data);
if (response.data.success) {
router.push("/thank-you");
sendEmaill(data);
}
} catch (error) {
console.error(
"Error submitting to Google Sheet API:",
error.response ? error.response.data : error.message
);
}
reset();
};
const sendEmaill = (data) => {
fetch("/api/sendEmailHome", {
method: "POST",
headers: {
Accept: "application/json, text/plain, */*",
"Content-Type": "application/json",
},
body: JSON.stringify(data),
})
.then((response) => {
console.log("response received", response);
if (response.status === 200) {
console.log("response succeeded");
} else {
console.log("response failed");
}
})
.catch((error) => {
console.error(error);
});
};
return ( return (
<> <>
<div className="free-quote-area ptb-100"> <div className="free-quote-area ptb-100">
...@@ -36,49 +103,115 @@ const CallBackRequest = () => { ...@@ -36,49 +103,115 @@ const CallBackRequest = () => {
Have a quick question or need more information? Fill out the Have a quick question or need more information? Fill out the
form below, and we'll get back to you as soon as possible form below, and we'll get back to you as soon as possible
</span> </span>
<form> <form onSubmit={handleSubmit(onSubmit)}>
<Row> <Row>
<Col lg={6} md={6}> <Col lg={6} md={6}>
<div className="form-group"> <div className="form-group">
<label>Your Name</label> <label>Your Name</label>
<input type="text" className="form-control" /> <Form.Group>
<Form.Control
type="text"
className="form-control"
{...register("Name", {
required: "Enter Your Name",
maxLength: {
value: 100,
message: "Name is too long",
},
})}
/>
{errors.Name && (
<span className="error">{errors.Name.message}</span>
)}
<Form.Control
required
type="text"
placeholder="Name"
defaultValue={"Home page form"} // Set defaultValue
className="text-dark d-none"
{...register("source", {})}
/>
</Form.Group>
</div> </div>
</Col> </Col>
<Col lg={6} md={6}> <Col lg={6} md={6}>
<div className="form-group"> <div className="form-group">
<label>Your Email</label> <label>Your Email</label>
<input type="text" className="form-control" /> <Form.Group>
<Form.Control
required
type="text"
className="form-control"
{...register("Email", {
required: "Enter Your Email",
pattern: {
value:
/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i,
message: "Invalid email address",
},
})}
/>
{errors.Email && (
<span className="error">{errors.Email.message}</span>
)}
</Form.Group>
</div> </div>
</Col> </Col>
<Col lg={6} md={6}> <Col lg={6} md={6}>
<div className="form-group"> <div className="form-group">
<label>Phone Number</label> <label>Phone Number</label>
<input type="text" className="form-control" /> <Form.Group>
<Form.Control
required
type="text"
className="form-control"
{...register("Mobile", {
required: "Enter Your Mobile Number",
maxLength: {
value: 10,
message: "Invalid Mobile number",
},
})}
/>
{errors.Mobile && (
<span className="error">{errors.Mobile.message}</span>
)}
</Form.Group>
</div> </div>
</Col> </Col>
<Col lg={6} md={6}> <Col lg={6} md={6}>
<div className="form-group"> <div className="form-group">
<label>Services</label> <label>Services</label>
<select className="form-select"> <Form.Group>
{/* <option value="selected"> <Form.Control as="select"
Financial Consultancy required
</option> */} type="select"
{...register("service", {
required: "Select Service",
})}
className="form-select">
<option disabled> Select Service</option> <option disabled> Select Service</option>
<option>Virtual FC & CFO Services</option> <option value="Virtual FC & CFO Services">Virtual FC & CFO Services</option>
<option>Transaction Advisory</option> <option value="Transaction Advisory">Transaction Advisory</option>
<option>Risk Advisory</option> <option value="Risk Advisory">Risk Advisory</option>
<option>Business Advisory</option> <option value="Business Advisory">Business Advisory</option>
<option>Personal Tax</option> <option value="Personal Tax">Personal Tax</option>
<option>Corporate Tax</option> <option value="Corporate Tax" >Corporate Tax</option>
<option>Company Law & FEMA</option> <option value="Company Law & FEMA">Company Law & FEMA</option>
<option>Transfer Pricing</option> <option value="Transfer Pricing">Transfer Pricing</option>
<option>GST & other Indirect Tax</option> <option value="GST & other Indirect Tax">GST & other Indirect Tax</option>
<option>Family Business Advisory</option> <option value="Family Business Advisory">Family Business Advisory</option>
<option>Others</option> <option value="Others">Others</option>
</select> </Form.Control>
{errors.service && (
<span className="error">{errors.service.message}</span>
)}
</Form.Group>
</div> </div>
</Col> </Col>
......
import Image from "next/image"; import Image from "next/image";
import React from "react"; import React from "react";
import { Swiper, SwiperSlide } from "swiper/react"; import { Swiper, SwiperSlide } from "swiper/react";
import { Autoplay, Navigation, Pagination } from "swiper/modules"; import { Autoplay, Navigation } from "swiper/modules";
import { Col, Container, Row } from "react-bootstrap"; import { Col, Container, Row } from "react-bootstrap";
import Heading from "./Heading"; import Heading from "./Heading";
import Link from "next/link"; import Link from "next/link";
import SwiperNav from "./SwiperNav"; import SwiperNav from "./SwiperNav";
const industriesData = [ const industriesData = [
{ {
title: "Education", title: "Education",
...@@ -33,7 +34,7 @@ const industriesData = [ ...@@ -33,7 +34,7 @@ const industriesData = [
title: "Technology", title: "Technology",
subtitle: "INDUSTRIES", subtitle: "INDUSTRIES",
description: description:
"From breakthroughs in software to cutting-edge technolgy, the Technology sector remains a key driver of innovation. Our expertise in finance equips us to provide strategic guidance and solutions tailored to the needs of this dynamic sector, ensuring the growth and financial success of our clients.", "From breakthroughs in software to cutting-edge technology, the Technology sector remains a key driver of innovation. Our expertise in finance equips us to provide strategic guidance and solutions tailored to the needs of this dynamic sector, ensuring the growth and financial success of our clients.",
imageSrc: "/images/industry/technology.png", imageSrc: "/images/industry/technology.png",
imageAlt: "image", imageAlt: "image",
shapeSrc: "/images/shape/shape8.png", shapeSrc: "/images/shape/shape8.png",
...@@ -62,14 +63,12 @@ const industriesData = [ ...@@ -62,14 +63,12 @@ const industriesData = [
shapeAlt: "image", shapeAlt: "image",
link: "/industry#realestate", link: "/industry#realestate",
}, },
// Add more objects here if you have more slides
]; ];
const Industries = () => { const Industries = () => {
return ( return (
<> <>
<div className="free-quote-area bg-color position-relative"> <div className="free-quote-area bg-color position-relative">
<Swiper <Swiper
spaceBetween={30} spaceBetween={30}
pagination={{ clickable: true }} pagination={{ clickable: true }}
...@@ -97,7 +96,7 @@ const Industries = () => { ...@@ -97,7 +96,7 @@ const Industries = () => {
prevEl: ".custom-swiper-button-prev", prevEl: ".custom-swiper-button-prev",
}} }}
loop={true} loop={true}
modules={[Navigation , Autoplay]} modules={[Navigation, Autoplay]}
className="industry-slides position-relative" className="industry-slides position-relative"
> >
{industriesData.map((industry, index) => ( {industriesData.map((industry, index) => (
...@@ -113,7 +112,10 @@ const Industries = () => { ...@@ -113,7 +112,10 @@ const Industries = () => {
className="industry-title" className="industry-title"
/> />
<p>{industry.description}</p> <p>{industry.description}</p>
<Link href={`${industry.link}`} className="default-btn-one"> <Link
href={`${industry.link}`}
className="default-btn-one"
>
Know More Know More
</Link> </Link>
</div> </div>
...@@ -135,7 +137,8 @@ const Industries = () => { ...@@ -135,7 +137,8 @@ const Industries = () => {
<Image <Image
src={industry.shapeSrc} src={industry.shapeSrc}
alt={industry.shapeAlt} alt={industry.shapeAlt}
layout="fill" width={500}
height={500}
className="img-fluid image" className="img-fluid image"
/> />
</div> </div>
......
...@@ -25,7 +25,7 @@ const posts = [ ...@@ -25,7 +25,7 @@ const posts = [
shortDesc: shortDesc:
"Tax Deducted at Source under Income Tax ActBy Advith Consulting1. Introduction", "Tax Deducted at Source under Income Tax ActBy Advith Consulting1. Introduction",
btnText: "Read More", btnText: "Read More",
detailsUrl: "/blog/details", detailsUrl: "/blog/detail/tax-deducted-at-source-under-income-tax-act",
}, },
{ {
id: 2, id: 2,
...@@ -38,7 +38,7 @@ const posts = [ ...@@ -38,7 +38,7 @@ const posts = [
shortDesc: shortDesc:
"Reporting on Fraudulent Activities by AuditorsBy Advith ConsultingIntroduction", "Reporting on Fraudulent Activities by AuditorsBy Advith ConsultingIntroduction",
btnText: "Read More", btnText: "Read More",
detailsUrl: "/blog/details", detailsUrl: "/blog/detail/reporting-on-fraudulent-activities-by-auditors",
}, },
{ {
id: 3, id: 3,
...@@ -51,7 +51,7 @@ const posts = [ ...@@ -51,7 +51,7 @@ const posts = [
shortDesc: shortDesc:
"Start-up and Angel TaxBy Advith ConsultingBackgroundWith the aim of foste", "Start-up and Angel TaxBy Advith ConsultingBackgroundWith the aim of foste",
btnText: "Read More", btnText: "Read More",
detailsUrl: "/blog/details", detailsUrl: "/blog/detail/start-up-and-angel-tax",
}, },
]; ];
......
import React from "react"; import React from "react";
import PageBanner from "@/components/reuseables/PageBanner"; import PageBanner from "@/components/reuseables/PageBanner";
import CareerListing from "./CareerListing"; import CareerListing from "./CareerListing";
import { Col, Container, Row } from "react-bootstrap";
import Link from "next/link";
const CareerPage = () => { const CareerPage = () => {
const banners = [ const banners = [
{ {
...@@ -14,7 +16,26 @@ const CareerPage = () => { ...@@ -14,7 +16,26 @@ const CareerPage = () => {
return ( return (
<> <>
<PageBanner banners={banners} /> <PageBanner banners={banners} />
<CareerListing /> {/* <CareerListing /> */}
<section className="ptb-100">
<Container>
<Row className="justify-content-center text-center">
<Col md={10}>
<h3 className="text-center">
We're more than just a workplace. We're a family.
</h3>
<p className="text-center">
We know that finding a meaningful and rewarding job can be a long
journey. Our goal is to make that process as easy as possible for
you, and to create a work environment that's satisfying - one
where you'll look forward to coming to every day. Start your
journey with us by browsing available jobs.
</p>
<Link href="https://advithconsulting.zohorecruit.in/careers" target="_blank"> <button className="default-btn mt-4"> Browse Jobs <i className="ri-arrow-right-line"></i></button></Link>
</Col>
</Row>
</Container>
</section>
</> </>
); );
}; };
......
import React, { useState } from "react"; import React, { useState } from "react";
import Link from "next/link"; import Link from "next/link";
import GoogleMap from "./GoogleMap"; import GoogleMap from "./GoogleMap";
import { Col, Container, Row } from "react-bootstrap"; import { Col, Container, Row, Form } from "react-bootstrap";
import Heading from "@/components/reuseables/Heading"; import Heading from "@/components/reuseables/Heading";
import { useForm } from "react-hook-form";
import axios from "axios";
import { useRouter } from "next/router";
const ContactForm = () => { const ContactForm = () => {
const {
handleSubmit,
control,
formState: { errors },
register,
reset,
} = useForm({
mode: "onBlur",
});
// email api
const router = useRouter();
const onSubmit = async (data) => {
const leadData = {
mobilenumber: data.Mobile,
email: data.Email,
message: data.AdditionalMessage || "",
name: data.Name,
company: data.Company,
source: data.source,
};
console.log(leadData, "form-data");
try {
const response = await axios.post("/api/googlesheetapi", leadData, {
headers: {
"Content-Type": "application/json",
},
});
console.log("Google Sheet API response:", response?.data);
if (response.data.success) {
router.push("/thank-you");
sendEmaill(data);
}
} catch (error) {
console.error(
"Error submitting to Google Sheet API:",
error.response ? error.response.data : error.message
);
}
reset();
};
const sendEmaill = (data) => {
fetch("/api/sendEmail", {
method: "POST",
headers: {
Accept: "application/json, text/plain, */*",
"Content-Type": "application/json",
},
body: JSON.stringify(data),
})
.then((response) => {
console.log("response received", response);
if (response.status === 200) {
console.log("response succeeded");
} else {
console.log("response failed");
}
})
.catch((error) => {
console.error(error);
});
};
return ( return (
<> <>
<div className="contact-area ptb-100"> <div className="contact-area ptb-100">
...@@ -18,86 +88,137 @@ const ContactForm = () => { ...@@ -18,86 +88,137 @@ const ContactForm = () => {
<span className="sub-title">SEND MESSAGE</span> <span className="sub-title">SEND MESSAGE</span>
<Heading heading="Write to Us!" /> <Heading heading="Write to Us!" />
<p> <p>
Connect with Advith Consulting today for an insightful consultation on how our tailored services can help propel your business towards success. Connect with Advith Consulting today for an insightful
consultation on how our tailored services can help propel your
business towards success.
</p> </p>
<form> <form onSubmit={handleSubmit(onSubmit)}>
<Row> <Row>
<Col lg={6} md={6} sm={6}> <Col lg={6} md={6} sm={6}>
<div className="form-group"> <div className="form-group">
<input <Form.Group>
<Form.Control
required
type="text" type="text"
name="name"
placeholder="Name" placeholder="Name"
className="form-control" className="text-dark form-control"
value="" {...register("Name", {
required: "Enter Your Name",
maxLength: {
value: 100,
message: "Name is too long",
},
})}
/>
{errors.Name && (
<span className="error">{errors.Name.message}</span>
)}
<Form.Control
required required
type="text"
placeholder="Name"
defaultValue={"contact form"} // Set defaultValue
className="text-dark d-none"
{...register("source", {})}
/> />
</Form.Group>
</div> </div>
</Col> </Col>
<Col lg={6} md={6} sm={6}> <Col lg={6} md={6} sm={6}>
<div className="form-group"> <div className="form-group">
<input <Form.Group>
type="text" <Form.Control
name="email"
placeholder="Email"
className="form-control"
required required
type="email"
className="text-dark form-control"
placeholder="Email"
{...register("Email", {
required: "Enter Your Email",
pattern: {
value:
/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i,
message: "Invalid email address",
},
})}
/> />
{errors.Email && (
<span className="error">{errors.Email.message}</span>
)}
</Form.Group>
</div> </div>
</Col> </Col>
<Col lg={6} md={6} sm={6}> <Col lg={6} md={6} sm={6}>
<div className="form-group"> <div className="form-group">
<input <Form.Group>
type="text" <Form.Control
name="number"
placeholder="Phone number"
className="form-control"
required required
type="text"
placeholder="Mobile"
className="text-dark form-control"
{...register("Mobile", {
required: "Enter Your Mobile Number",
maxLength: {
value: 10,
message: "Invalid Mobile number",
},
})}
/> />
{errors.Mobile && (
<span className="error">{errors.Mobile.message}</span>
)}
</Form.Group>
</div> </div>
</Col> </Col>
<Col lg={6} md={6} sm={6}> <Col lg={6} md={6} sm={6}>
<div className="form-group"> <div className="form-group">
<input <Form.Group>
type="text" <Form.Control
name="subject"
placeholder="Subject"
className="form-control"
required required
type="text"
className="text-dark form-control"
placeholder="Company Name"
{...register("Company", {
required: "Enter your Company",
})}
/> />
{errors.Company && (
<span className="error">
{errors.Company.message}
</span>
)}
</Form.Group>
</div> </div>
</Col> </Col>
<Col lg={12} md={12} sm={6}> <Col lg={12} md={12} sm={6}>
<div className="form-group"> <div className="form-group">
<textarea <Form.Group>
name="text" <Form.Control
cols="30" as="textarea"
rows="6" rows={5}
placeholder="Write your message..."
className="form-control"
required required
type="text"
placeholder="Additional message"
className="text-dark form-control"
{...register("AdditionalMessage", {})}
/> />
{errors.AdditionalMessage && (
<span className="error">
{errors.AdditionalMessage.message}
</span>
)}
</Form.Group>
</div> </div>
</Col> </Col>
{/* <Col lg={12} md={12} sm={12}>
<div className="form-check">
<input
type="checkbox"
className="form-check-input"
id="checkme"
/>
<label className="form-check-label" htmlFor="checkme">
Accept
<Link href="/terms-conditions">
Terms of Services
</Link>
and <Link href="/privacy-policy">Privacy Policy</Link>
</label>
</div>
</Col> */}
<Col lg={12} md={12} sm={12}> <Col lg={12} md={12} sm={12}>
<button type="submit" className="default-btn"> <button
type="submit"
className="default-btn submit submit-btn"
>
Send Message <i className="ri-arrow-right-line"></i> Send Message <i className="ri-arrow-right-line"></i>
</button> </button>
</Col> </Col>
......
...@@ -18,7 +18,7 @@ const blogPosts = [ ...@@ -18,7 +18,7 @@ const blogPosts = [
shortDesc: shortDesc:
"Tax Deducted at Source under Income Tax ActBy Advith Consulting1. Introduction", "Tax Deducted at Source under Income Tax ActBy Advith Consulting1. Introduction",
btnText: "Read More", btnText: "Read More",
detailsUrl: "/blog/details", detailsUrl: "/blog/detail/tax-deducted-at-source-under-income-tax-act",
}, },
{ {
id: 2, id: 2,
...@@ -31,7 +31,7 @@ const blogPosts = [ ...@@ -31,7 +31,7 @@ const blogPosts = [
shortDesc: shortDesc:
"Reporting on Fraudulent Activities by AuditorsBy Advith ConsultingIntroduction", "Reporting on Fraudulent Activities by AuditorsBy Advith ConsultingIntroduction",
btnText: "Read More", btnText: "Read More",
detailsUrl: "/blog/details", detailsUrl: "/blog/detail/reporting-on-fraudulent-activities-by-auditors",
}, },
{ {
id: 3, id: 3,
...@@ -44,7 +44,7 @@ const blogPosts = [ ...@@ -44,7 +44,7 @@ const blogPosts = [
shortDesc: shortDesc:
"Start-up and Angel TaxBy Advith ConsultingBackgroundWith the aim of foste", "Start-up and Angel TaxBy Advith ConsultingBackgroundWith the aim of foste",
btnText: "Read More", btnText: "Read More",
detailsUrl: "/blog/details", detailsUrl: "/blog/detail/start-up-and-angel-tax",
}, },
]; ];
......
...@@ -8,15 +8,19 @@ ...@@ -8,15 +8,19 @@
"name": "advith-consulting", "name": "advith-consulting",
"version": "0.1.0", "version": "0.1.0",
"dependencies": { "dependencies": {
"axios": "^1.7.2", "axios": "^1.7.7",
"bootstrap": "^5.3.3", "bootstrap": "^5.3.3",
"eslint-config-next": "^13.5.6", "eslint-config-next": "^13.5.6",
"framer-motion": "^11.3.24", "framer-motion": "^11.3.24",
"next": "^13.5.6", "next": "^13.5.6",
"nodemailer": "^6.9.15",
"qs": "^6.13.0",
"query-string": "^9.1.1",
"react": "^18.3.1", "react": "^18.3.1",
"react-accessible-accordion": "^5.0.0", "react-accessible-accordion": "^5.0.0",
"react-bootstrap": "^2.10.4", "react-bootstrap": "^2.10.4",
"react-dom": "^18.3.1", "react-dom": "^18.3.1",
"react-hook-form": "^7.53.0",
"react-tabs": "^6.0.2", "react-tabs": "^6.0.2",
"sweetalert2": "^6.6.1", "sweetalert2": "^6.6.1",
"sweetalert2-react-content": "^5.0.7", "sweetalert2-react-content": "^5.0.7",
...@@ -796,9 +800,9 @@ ...@@ -796,9 +800,9 @@
} }
}, },
"node_modules/axios": { "node_modules/axios": {
"version": "1.7.2", "version": "1.7.7",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz",
"integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==",
"dependencies": { "dependencies": {
"follow-redirects": "^1.15.6", "follow-redirects": "^1.15.6",
"form-data": "^4.0.0", "form-data": "^4.0.0",
...@@ -1069,6 +1073,14 @@ ...@@ -1069,6 +1073,14 @@
} }
} }
}, },
"node_modules/decode-uri-component": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.4.1.tgz",
"integrity": "sha512-+8VxcR21HhTy8nOt6jf20w0c9CADrw1O8d+VZ/YzzCt4bJ3uBjw+D1q2osAB8RnpwwaeYBxy0HyKQxD5JBMuuQ==",
"engines": {
"node": ">=14.16"
}
},
"node_modules/deep-equal": { "node_modules/deep-equal": {
"version": "2.2.3", "version": "2.2.3",
"resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz",
...@@ -1852,6 +1864,17 @@ ...@@ -1852,6 +1864,17 @@
"node": ">=8" "node": ">=8"
} }
}, },
"node_modules/filter-obj": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-5.1.0.tgz",
"integrity": "sha512-qWeTREPoT7I0bifpPUXtxkZJ1XJzxWtfoWWkdVGqa+eCr3SHW/Ocp89o8vLvbUuQnadybJpjOKu4V+RwO6sGng==",
"engines": {
"node": ">=14.16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/find-up": { "node_modules/find-up": {
"version": "5.0.0", "version": "5.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
...@@ -2910,6 +2933,14 @@ ...@@ -2910,6 +2933,14 @@
} }
} }
}, },
"node_modules/nodemailer": {
"version": "6.9.15",
"resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.9.15.tgz",
"integrity": "sha512-AHf04ySLC6CIfuRtRiEYtGEXgRfa6INgWGluDhnxTZhHSKvrBu7lc1VVchQ0d8nPc4cFaZoPq8vkyNoZr0TpGQ==",
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/object-assign": { "node_modules/object-assign": {
"version": "4.1.1", "version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
...@@ -3230,6 +3261,36 @@ ...@@ -3230,6 +3261,36 @@
"node": ">=6" "node": ">=6"
} }
}, },
"node_modules/qs": {
"version": "6.13.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz",
"integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
"dependencies": {
"side-channel": "^1.0.6"
},
"engines": {
"node": ">=0.6"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/query-string": {
"version": "9.1.1",
"resolved": "https://registry.npmjs.org/query-string/-/query-string-9.1.1.tgz",
"integrity": "sha512-MWkCOVIcJP9QSKU52Ngow6bsAWAPlPK2MludXvcrS2bGZSl+T1qX9MZvRIkqUIkGLJquMJHWfsT6eRqUpp4aWg==",
"dependencies": {
"decode-uri-component": "^0.4.1",
"filter-obj": "^5.1.0",
"split-on-first": "^3.0.0"
},
"engines": {
"node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/queue-microtask": { "node_modules/queue-microtask": {
"version": "1.2.3", "version": "1.2.3",
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
...@@ -3310,6 +3371,21 @@ ...@@ -3310,6 +3371,21 @@
"react": "^18.3.1" "react": "^18.3.1"
} }
}, },
"node_modules/react-hook-form": {
"version": "7.53.0",
"resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.53.0.tgz",
"integrity": "sha512-M1n3HhqCww6S2hxLxciEXy2oISPnAzxY7gvwVPrtlczTM/1dDadXgUxDpHMrMTblDOcm/AXtXxHwZ3jpg1mqKQ==",
"engines": {
"node": ">=18.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/react-hook-form"
},
"peerDependencies": {
"react": "^16.8.0 || ^17 || ^18 || ^19"
}
},
"node_modules/react-is": { "node_modules/react-is": {
"version": "16.13.1", "version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
...@@ -3605,6 +3681,17 @@ ...@@ -3605,6 +3681,17 @@
"node": ">=0.10.0" "node": ">=0.10.0"
} }
}, },
"node_modules/split-on-first": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-3.0.0.tgz",
"integrity": "sha512-qxQJTx2ryR0Dw0ITYyekNQWpz6f8dGd7vffGNflQQ3Iqj9NJ6qiZ7ELpZsJ/QBhIVAiDfXdag3+Gp8RvWa62AA==",
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/stop-iteration-iterator": { "node_modules/stop-iteration-iterator": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz",
......
...@@ -9,15 +9,19 @@ ...@@ -9,15 +9,19 @@
"lint": "next lint" "lint": "next lint"
}, },
"dependencies": { "dependencies": {
"axios": "^1.7.2", "axios": "^1.7.7",
"bootstrap": "^5.3.3", "bootstrap": "^5.3.3",
"eslint-config-next": "^13.5.6", "eslint-config-next": "^13.5.6",
"framer-motion": "^11.3.24", "framer-motion": "^11.3.24",
"next": "^13.5.6", "next": "^13.5.6",
"nodemailer": "^6.9.15",
"qs": "^6.13.0",
"query-string": "^9.1.1",
"react": "^18.3.1", "react": "^18.3.1",
"react-accessible-accordion": "^5.0.0", "react-accessible-accordion": "^5.0.0",
"react-bootstrap": "^2.10.4", "react-bootstrap": "^2.10.4",
"react-dom": "^18.3.1", "react-dom": "^18.3.1",
"react-hook-form": "^7.53.0",
"react-tabs": "^6.0.2", "react-tabs": "^6.0.2",
"sweetalert2": "^6.6.1", "sweetalert2": "^6.6.1",
"sweetalert2-react-content": "^5.0.7", "sweetalert2-react-content": "^5.0.7",
......
import axios from "axios";
import QueryString from "qs";
export default async function handler(req, res) {
const qs = QueryString;
const { name, email, mobilenumber, source, message, company } = req.body;
console.log(req.body, "req.body");
const googleFormValue = {
"entry.335149761": name,
"entry.2091968279": email,
"entry.1704732802": mobilenumber,
"entry.1731014865": message,
"entry.1039593561": company,
"entry.1881494979": source,
};
try {
const response = await axios.post(
"https://docs.google.com/forms/d/e/1FAIpQLSexGa9VFMdNVe0QzpiHSMjITeX3-HuCF1-kQgmdRsLE3icCXQ/formResponse",
qs.stringify(googleFormValue),
{
headers: {
Accept: "application/json, text/plain, */*",
"Content-Type": "application/x-www-form-urlencoded",
},
}
);
res.status(200).json({ success: true, data: response.data });
} catch (googleFormError) {
console.error("Error while submitting to Google Forms:", googleFormError);
res.status(500).json({ success: false, error: googleFormError.message });
}
}
\ No newline at end of file \ No newline at end of file
import axios from "axios";
import QueryString from "qs";
export default async function handler(req, res) {
const qs = QueryString;
const { name, email, mobilenumber, source, service } = req.body;
console.log(req.body, "req.body");
const googleFormValue = {
"entry.335149761": name,
"entry.2091968279": email,
"entry.1704732802": mobilenumber,
"entry.1039593561": service,
"entry.1881494979": source,
};
try {
const response = await axios.post(
"https://docs.google.com/forms/d/e/1FAIpQLScsWMYf9pnPJklvJ5GquBMgH-dTwfT0JCJDWGwG10LCtAkHtg/formResponse",
qs.stringify(googleFormValue),
{
headers: {
Accept: "application/json, text/plain, */*",
"Content-Type": "application/x-www-form-urlencoded",
},
}
);
res.status(200).json({ success: true, data: response.data });
} catch (googleFormError) {
console.error("Error while submitting to Google Forms:", googleFormError);
res.status(500).json({ success: false, error: googleFormError.message });
}
}
\ No newline at end of file \ No newline at end of file
import nodemailer from "nodemailer";
export default function (req, res) {
// let nodemailer = require("nodemailer");
const transporter = nodemailer.createTransport({
port: 465,
host: "smtp.gmail.com",
auth: {
user: "dheeraj.realatte@gmail.com",
pass: "pamoocbnzfqhigdf",
},
secure: true,
});
var maillist = ["sujatalogicloop@gmail.com"];
const mailData = {
from: ["sujatalogicloop@gmail.com"],
to: maillist,
subject: `Advith Consulting Contact Form Leads`,
html: `
<table border="0" cellpadding="0" cellspacing="0" style="padding-top:35px; background-color:#f1f1f1; font-family:Verdana,Arial,sans-serif; color:#454748; width:100%; border-collapse:separate;">
<tbody>
<tr>
<td align="center">
<table border="0" cellpadding="0" cellspacing="0" width="590" style="padding:16px; background-color:white; color:#454748; border-collapse:separate;">
<tbody>
<tr>
<td align="center" style="min-width:590px;">
<table border="0" cellpadding="0" cellspacing="0" width="590" style="min-width:590px; background-color:white; padding:0px 8px 0px 8px; border-collapse:separate;">
<tbody>
<tr>
<td valign="middle">
<strong style="font-size:16px; margin: 0;">Welcome to Advith Consulting</strong>
</td>
</tr>
<tr>
<td colspan="2" style="text-align:center;">
<hr width="100%" style="border-top-color:rgba(0,0,0,0.1); border-top-style:solid; border-top-width:1px; border-left-width:0px; border-bottom-width:0px; border-right-width:0px; overflow-y:visible; overflow-x:visible; height:0px; box-sizing:content-box; background-color:rgb(204,204,204); border:medium none; clear:both; display:block; font-size:0px; min-height:1px; line-height:0; margin:16px 0px 16px 0px;">
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td align="center" style="min-width:590px;">
<table border="0" cellpadding="0" cellspacing="0" width="590" style="min-width:590px; background-color:white; padding:0px 8px 0px 8px; border-collapse:separate;">
<tbody>
<tr>
<td colspan="2" valign="top" style="font-size:13px;">
<div style="font-size:13px; font-family:&quotLucida Grande&quot,Helvetica,Verdana,Arial,sans-serif;">
Details below are enquiry from website!<br><br>
</div>
</td>
</tr>
<tr>
<td valign="top" style="font-size:13px;">
<div style="font-size:13px; font-family:&quotLucida Grande&quot,Helvetica,Verdana,Arial,sans-serif;">
<tr><td colspan="2"><b>Personal Details:</b></td></tr>
<tr><td style="width: 30%;">Name:</td><td style="width: 70%;">${req.body.Name}</td></tr>
<tr><td style="width: 30%;">Email:</td><td style="width: 70%;">${req.body.Email}</td></tr>
<tr><td style="width: 30%;">Mobile:</td><td style="width: 70%;">${req.body.Mobile}</td></tr>
<tr><td style="width: 30%;">Company:</td><td style="width: 70%;">${req.body.Company}</td></tr>
<tr><td style="width: 30%;">Message:</td><td style="width: 70%;">${req.body.AdditionalMessage }</td></tr>
<br><br>
</div>
</td>
</tr>
<tr>
<td colspan="2" style="text-align:center;">
<hr width="100%" style="border-top-color:rgba(0,0,0,0.1); border-top-style:solid; border-top-width:1px; border-left-width:0px; border-bottom-width:0px; border-right-width:0px; overflow-y:visible; overflow-x:visible; height:0px; box-sizing:content-box; background-color:rgb(204,204,204); border:medium none; clear:both; display:block; font-size:0px; min-height:1px; line-height:0; margin:16px 0px 16px 0px;">
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td align="center" style="min-width:590px;">
<table border="0" cellpadding="0" cellspacing="0" width="590" style="min-width:590px; background-color:#f1f1f1; color:#454748; padding:8px; border-collapse:separate;">
<tbody>
<tr>
<td style="text-align:center; font-size:13px;"><br></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>`,
};
transporter.sendMail(mailData, function (err, info) {
if (err) console.log(err);
else console.log(info);
});
console.log(req.body);
res.send("success");
}
import nodemailer from "nodemailer";
export default function (req, res) {
// let nodemailer = require("nodemailer");
const transporter = nodemailer.createTransport({
port: 465,
host: "smtp.gmail.com",
auth: {
user: "dheeraj.realatte@gmail.com",
pass: "pamoocbnzfqhigdf",
},
secure: true,
});
var maillist = ["sujatalogicloop@gmail.com"];
const mailData = {
from: ["sujatalogicloop@gmail.com"],
to: maillist,
subject: `Advith Consulting Service Form Leads`,
html: `
<table border="0" cellpadding="0" cellspacing="0" style="padding-top:35px; background-color:#f1f1f1; font-family:Verdana,Arial,sans-serif; color:#454748; width:100%; border-collapse:separate;">
<tbody>
<tr>
<td align="center">
<table border="0" cellpadding="0" cellspacing="0" width="590" style="padding:16px; background-color:white; color:#454748; border-collapse:separate;">
<tbody>
<tr>
<td align="center" style="min-width:590px;">
<table border="0" cellpadding="0" cellspacing="0" width="590" style="min-width:590px; background-color:white; padding:0px 8px 0px 8px; border-collapse:separate;">
<tbody>
<tr>
<td valign="middle">
<strong style="font-size:16px; margin: 0;">Welcome to Advith Consulting</strong>
</td>
</tr>
<tr>
<td colspan="2" style="text-align:center;">
<hr width="100%" style="border-top-color:rgba(0,0,0,0.1); border-top-style:solid; border-top-width:1px; border-left-width:0px; border-bottom-width:0px; border-right-width:0px; overflow-y:visible; overflow-x:visible; height:0px; box-sizing:content-box; background-color:rgb(204,204,204); border:medium none; clear:both; display:block; font-size:0px; min-height:1px; line-height:0; margin:16px 0px 16px 0px;">
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td align="center" style="min-width:590px;">
<table border="0" cellpadding="0" cellspacing="0" width="590" style="min-width:590px; background-color:white; padding:0px 8px 0px 8px; border-collapse:separate;">
<tbody>
<tr>
<td colspan="2" valign="top" style="font-size:13px;">
<div style="font-size:13px; font-family:&quotLucida Grande&quot,Helvetica,Verdana,Arial,sans-serif;">
Details below are enquiry from website!<br><br>
</div>
</td>
</tr>
<tr>
<td valign="top" style="font-size:13px;">
<div style="font-size:13px; font-family:&quotLucida Grande&quot,Helvetica,Verdana,Arial,sans-serif;">
<tr><td colspan="2"><b>Personal Details:</b></td></tr>
<tr><td style="width: 30%;">Name:</td><td style="width: 70%;">${req.body.Name}</td></tr>
<tr><td style="width: 30%;">Email:</td><td style="width: 70%;">${req.body.Email}</td></tr>
<tr><td style="width: 30%;">Mobile:</td><td style="width: 70%;">${req.body.Mobile}</td></tr>
<tr><td style="width: 30%;">Company:</td><td style="width: 70%;">${req.body.service}</td></tr>
<br><br>
</div>
</td>
</tr>
<tr>
<td colspan="2" style="text-align:center;">
<hr width="100%" style="border-top-color:rgba(0,0,0,0.1); border-top-style:solid; border-top-width:1px; border-left-width:0px; border-bottom-width:0px; border-right-width:0px; overflow-y:visible; overflow-x:visible; height:0px; box-sizing:content-box; background-color:rgb(204,204,204); border:medium none; clear:both; display:block; font-size:0px; min-height:1px; line-height:0; margin:16px 0px 16px 0px;">
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td align="center" style="min-width:590px;">
<table border="0" cellpadding="0" cellspacing="0" width="590" style="min-width:590px; background-color:#f1f1f1; color:#454748; padding:8px; border-collapse:separate;">
<tbody>
<tr>
<td style="text-align:center; font-size:13px;"><br></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>`,
};
transporter.sendMail(mailData, function (err, info) {
if (err) console.log(err);
else console.log(info);
});
console.log(req.body);
res.send("success");
}
import PageBanner from '@/components/reuseables/PageBanner';
import Link from 'next/link';
import React from 'react'
import {Col, Container, Row } from 'react-bootstrap'
const banners = [
{
imageSrc: "/images/banner/corpedia.webp",
pageTitle: "Thank you",
homePageUrl: "/",
homePageText: "Home",
activePageText: "thank you",
},
// Add more banners as needed
];
const thankyou = () => {
return (
<>
<PageBanner banners={banners} />
<Container className='mt-5'>
<Row>
<Col md={12}>
<div className="text-center">
<h4 className="text-center">Thank you for your interest in our product. We will get back to you shortly.</h4>
<button className="default-btn mt-4 mb-5">
<i className="ri-arrow-right-line"></i>
<Link href="/">Back to Home</Link></button>
</div>
</Col>
</Row>
</Container>
</>
)
}
export default thankyou
\ No newline at end of file \ No newline at end of file
...@@ -724,6 +724,9 @@ ...@@ -724,6 +724,9 @@
margin-top: 30px; margin-top: 30px;
} }
.what-we-do-content .default-btn {
margin-top: 0px;
}
.single-team-member { .single-team-member {
text-align: center; text-align: center;
} }
...@@ -768,7 +771,7 @@ ...@@ -768,7 +771,7 @@
.free-quote-content { .free-quote-content {
padding-bottom: 20px; padding-bottom: 20px;
text-align: center; text-align: left;
} }
.free-quote-content::before { .free-quote-content::before {
......
...@@ -3132,6 +3132,7 @@ Free Quote Area CSS ...@@ -3132,6 +3132,7 @@ Free Quote Area CSS
position: relative; position: relative;
padding-bottom: 25px; padding-bottom: 25px;
text-align: left; text-align: left;
z-index: 5; /* Adjust z-index if needed */
} }
.free-quote-content .sub-title { .free-quote-content .sub-title {
...@@ -8195,13 +8196,15 @@ font-size: 15px!important; ...@@ -8195,13 +8196,15 @@ font-size: 15px!important;
position: absolute; position: absolute;
left: 0; left: 0;
width: 100%; width: 100%;
z-index: 10!;
} }
.cust_nav { .cust_nav {
top: 0; top: 0;
display: flex; display: flex;
height: 100%; height: 100%;
z-index: 1; /* z-index: 1; */
justify-content: space-between; justify-content: space-between;
} }
...@@ -8272,3 +8275,6 @@ font-size: 15px!important; ...@@ -8272,3 +8275,6 @@ font-size: 15px!important;
margin-bottom: 12px; margin-bottom: 12px;
font-size: 22px; font-size: 22px;
} }
span.error{
color: rgb(189, 17, 17);
}
\ No newline at end of file \ No newline at end of file
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!