From 25c0bf50ea968d699c54b3238fbfc7025ccc1491 Mon Sep 17 00:00:00 2001 From: Ayush Date: Sat, 9 Nov 2024 20:09:10 +0530 Subject: [PATCH] added newsleeter frontend backend --- backend/controllers/logo1.png | Bin 0 -> 50683 bytes backend/controllers/newsletter.js | 79 ++++++++++ backend/index.js | 3 +- backend/package-lock.json | 10 ++ backend/package.json | 1 + src/components/Footer.js | 238 +++++++++++++++++++++++++----- 6 files changed, 295 insertions(+), 36 deletions(-) create mode 100644 backend/controllers/logo1.png create mode 100644 backend/controllers/newsletter.js diff --git a/backend/controllers/logo1.png b/backend/controllers/logo1.png new file mode 100644 index 0000000000000000000000000000000000000000..c4419691472348242a9738f6bff738715fd4022b GIT binary patch literal 50683 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

u3zpjWzniTQy6l3lczaYKc13{EkzSq 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 z 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 { + const mailOptions = { + from: process.env.EMAIL_USER, + to: email, + subject: "Thank you for Subscribing to EventMint", + html: ` +

+ `, + attachments: [ + { + filename: "eventmint-logo.png", + path: "C:/Users/ayush/OneDrive/Desktop/eventmint/backend/controllers/logo1.png", + cid: "headerImage", + }, + ], + }; + + return transporter.sendMail(mailOptions); +}; + +router.post("/subscribe", async (req, res) => { + try { + const { email } = req.body; + if (!email) { + return res.status(400).json({ error: "Email is required" }); + } + + await sendConfirmationEmail(email); + res.status(200).json({ + message: "Subscription successful! A confirmation email has been sent.", + }); + } catch (error) { + console.log(error); + res + .status(500) + .json({ error: "An error occurred while sending the email." }); + } +}); + +module.exports = router; diff --git a/backend/index.js b/backend/index.js index 0c0b7dc..910a58f 100644 --- a/backend/index.js +++ b/backend/index.js @@ -5,6 +5,7 @@ const express = require("express"); const app = express(); const userController = require("./controllers/auth"); const AddShow = require("./controllers/Shows"); +const Newletter = require("./controllers/newsletter"); const database = require("./config/database"); const cookieParser = require("cookie-parser"); const cors = require("cors"); @@ -33,7 +34,7 @@ app.use( app.use("/api/v1/auth", userController); app.use("/api/v1/shows", AddShow); - +app.use("/api/v1/newsletter", Newletter); // Testing the server app.get("/", (req, res) => { return res.json({ diff --git a/backend/package-lock.json b/backend/package-lock.json index ba7f7ae..9f5b55d 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -18,6 +18,7 @@ "express-rate-limit": "^7.4.1", "jsonwebtoken": "^9.0.2", "mongoose": "^8.7.0", + "nodemailer": "^6.9.16", "nodemon": "^3.1.7" } }, @@ -1447,6 +1448,15 @@ "webidl-conversions": "^3.0.0" } }, + "node_modules/nodemailer": { + "version": "6.9.16", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.9.16.tgz", + "integrity": "sha512-psAuZdTIRN08HKVd/E8ObdV6NO7NTBY3KsC30F7M4H1OnmLCUNaS56FpYxyb26zWLSyYF9Ozch9KYHhHegsiOQ==", + "license": "MIT-0", + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/nodemon": { "version": "3.1.7", "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.7.tgz", diff --git a/backend/package.json b/backend/package.json index 9651981..e174028 100644 --- a/backend/package.json +++ b/backend/package.json @@ -20,6 +20,7 @@ "express-rate-limit": "^7.4.1", "jsonwebtoken": "^9.0.2", "mongoose": "^8.7.0", + "nodemailer": "^6.9.16", "nodemon": "^3.1.7" } } diff --git a/src/components/Footer.js b/src/components/Footer.js index 67cd305..c3ecf49 100644 --- a/src/components/Footer.js +++ b/src/components/Footer.js @@ -1,8 +1,19 @@ -import React, { useState, useEffect } from 'react'; -import { motion, AnimatePresence } from 'framer-motion'; -import { FaFacebookF, FaInstagram, FaYoutube, FaLinkedinIn, FaChevronDown, FaChevronUp, FaLocationDot, FaPhone, FaArrowUp } from 'react-icons/fa'; -import { MdEmail } from 'react-icons/md'; -import { FaXTwitter } from 'react-icons/fa6'; +import React, { useState, useEffect } from "react"; +import { motion, AnimatePresence } from "framer-motion"; +import { toast, Toaster } from "react-hot-toast"; +import { + FaFacebookF, + FaInstagram, + FaYoutube, + FaLinkedinIn, + FaChevronDown, + FaChevronUp, + FaLocationDot, + FaPhone, + FaArrowUp, +} from "react-icons/fa"; +import { MdEmail } from "react-icons/md"; +import { FaXTwitter } from "react-icons/fa6"; import logo from "../assets/images/logo2.png"; const SocialIcon = ({ icon: Icon, href }) => ( @@ -22,7 +33,9 @@ const AccordionItem = ({ title, children }) => { const [isOpen, setIsOpen] = useState(false); return ( -
{/* Set relative positioning here */} +
+ {" "} + {/* Set relative positioning here */} setIsOpen(!isOpen)} @@ -46,7 +59,9 @@ const AccordionItem = ({ title, children }) => { transition={{ duration: 0.3 }} className="absolute left-0 w-full bg-gray-800 mt-2 z-10" // Adjusted to ensure no extra margin > -
{/* Remove left padding/margin if needed */} +
+ {" "} + {/* Remove left padding/margin if needed */} {children}
@@ -57,15 +72,39 @@ const AccordionItem = ({ title, children }) => { }; export default function Footer() { - const [email, setEmail] = useState(''); + const [message, setMessage] = useState(""); + const [email, setEmail] = useState(""); const [isVisible, setIsVisible] = useState(false); - const handleSubmit = (e) => { + const handleSubmit = async (e) => { e.preventDefault(); - console.log('Subscribed:', email); - setEmail(''); - }; + setMessage(""); + + try { + const response = await fetch( + "http://localhost:4000/api/v1/newsletter/subscribe", + { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ email }), + } + ); + + if (response.ok) { + const data = await response.json(); + toast.success("news letter subscribed"); + } else { + const errorData = await response.json(); + setMessage(errorData.error || "An error occurred. Please try again."); + } + } catch (error) { + setMessage("An error occurred. Please try again."); + } + setEmail(""); + }; useEffect(() => { const toggleVisibility = () => { if (window.scrollY > 300) { @@ -75,20 +114,21 @@ export default function Footer() { } }; - window.addEventListener('scroll', toggleVisibility); + window.addEventListener("scroll", toggleVisibility); - return () => window.removeEventListener('scroll', toggleVisibility); + return () => window.removeEventListener("scroll", toggleVisibility); }, []); const scrollToTop = () => { window.scrollTo({ top: 0, - behavior: 'smooth' + behavior: "smooth", }); }; return (