diff --git a/README.md b/README.md index b9127211..12334fc1 100644 --- a/README.md +++ b/README.md @@ -245,10 +245,17 @@ We extend our heartfelt gratitude to all the amazing contributors who have made - - PavanTeja2005 + + Jay-1409
- PavanTeja2005 + Jay shah +
+ + + + vishnuprasad2004 +
+ Vishnu Prasad Korada
@@ -259,10 +266,10 @@ We extend our heartfelt gratitude to all the amazing contributors who have made - - vishnuprasad2004 + + PavanTeja2005
- Vishnu Prasad Korada + PavanTeja2005
@@ -279,6 +286,8 @@ We extend our heartfelt gratitude to all the amazing contributors who have made Navneet Dadhich + + Aditya90456 @@ -286,8 +295,6 @@ We extend our heartfelt gratitude to all the amazing contributors who have made Aditya Bakshi - - tanishirai @@ -323,6 +330,8 @@ We extend our heartfelt gratitude to all the amazing contributors who have made Sawan kushwah + + devxMani @@ -330,8 +339,6 @@ We extend our heartfelt gratitude to all the amazing contributors who have made MANI - - Ayush215mb @@ -346,6 +353,13 @@ We extend our heartfelt gratitude to all the amazing contributors who have made Ali Gates + + + chikatlarakesh +
+ CHIKATLA RAKESH +
+ mishradev1 @@ -360,13 +374,8 @@ We extend our heartfelt gratitude to all the amazing contributors who have made Jai Dhingra - - - Jay-1409 -
- Jay shah -
- + + Mohitranag18 @@ -374,8 +383,6 @@ We extend our heartfelt gratitude to all the amazing contributors who have made Mohit Rana - - MutiatBash @@ -411,6 +418,8 @@ We extend our heartfelt gratitude to all the amazing contributors who have made Vaibhav-Kumar-K-R + + lade6501 diff --git a/frontend/src/components/Membership.jsx b/frontend/src/components/Membership.jsx new file mode 100644 index 00000000..908ece7b --- /dev/null +++ b/frontend/src/components/Membership.jsx @@ -0,0 +1,162 @@ +/* eslint-disable prettier/prettier */ +import React, { useState } from 'react'; +import { motion } from 'framer-motion'; +import { GiCheckMark } from 'react-icons/gi'; +import { useNavigate } from 'react-router-dom'; + +const membershipData = [ + { + title: "Foods + Games Membership", + features: [ + "Access to both the food menu and gaming lounge", + "Special discounts on selected food items", + "Free gaming credits each month", + "Exclusive access to members-only events" + ], + price: "$50/month", + }, + { + title: "Games Only Membership", + features: [ + "Unlimited access to all games", + "Free gaming credits every week", + "Invitations to members-only gaming tournaments" + ], + price: "$30/month", + }, + { + title: "Customizable Add-ons", + features: [ + "Free food on game days", + "Extra gaming time", + "Birthday party discounts", + "Free gaming credits every week", + "Invitations to members-only gaming tournaments", + "Exclusive access to members-only events" + ], + price: "Varies", + }, +]; + +const containerVariants = { + hidden: { opacity: 0, y: 50 }, + visible: { + opacity: 1, + y: 0, + transition: { + type: "spring", + stiffness: 50, + damping: 20, + staggerChildren: 0.2, + }, + }, +}; + +const cardVariants = { + hidden: { opacity: 0, y: 50 }, + visible: { opacity: 1, y: 0 }, +}; + +const Membership = () => { + const navigate = useNavigate(); + const [isModalOpen, setIsModalOpen] = useState(false); + const [selectedFeatures, setSelectedFeatures] = useState({}); + + const handleFeatureChange = (feature) => { + setSelectedFeatures((prev) => ({ + ...prev, + [feature]: !prev[feature], + })); + }; + + const handleNext = () => { + navigate('/signup'); + }; + + return ( + +
+

Membership Plans

+

+ Choose the plan that suits your needs and start enjoying exclusive perks! +

+
+ +
+ {membershipData.map((plan, index) => ( + +

{plan.title}

+
    + {plan.features.map((feature, idx) => ( +
  • + {feature} +
  • + ))} +
+
{plan.price}
+ {plan.title === "Customizable Add-ons" ? ( + + ) : ( + + )} +
+ ))} +
+ + {isModalOpen && ( +
+
+

Select Your Add-ons

+
+ {membershipData[2].features.map((feature, idx) => ( + + ))} +
+ + +
+
+ )} +
+ ); +}; + +export default Membership; diff --git a/frontend/src/components/Shared/Navbar.jsx b/frontend/src/components/Shared/Navbar.jsx index 2b7c1a24..482056a9 100644 --- a/frontend/src/components/Shared/Navbar.jsx +++ b/frontend/src/components/Shared/Navbar.jsx @@ -18,7 +18,9 @@ const Navbar = () => { { name: 'MENU', path: '/menu' }, { name: 'RESERVATION', path: '/reservation' }, { name: 'BOARDGAMES', path: '/boardgame' }, + { name: 'MEMBERSHIP', path: '/membership' }, // Add Membership here ]; + useEffect(() => { setToken(Cookies.get('authToken')); }); diff --git a/frontend/src/router/index.jsx b/frontend/src/router/index.jsx index 994e6334..a14a06db 100644 --- a/frontend/src/router/index.jsx +++ b/frontend/src/router/index.jsx @@ -20,10 +20,10 @@ import ResetPassword from '../components/Pages/ResetPassword'; import Admin from '../components/Pages/Admin'; import VerifyOtp from '../components/Pages/VerifyOtp'; import EmailVerify from '../components/Pages/EmailVerify'; - +import Membership from '../components/Membership'; const router = createBrowserRouter( createRoutesFromElements( - }> + }> } /> } /> } /> @@ -38,6 +38,8 @@ const router = createBrowserRouter( } /> } /> } /> + } /> + ) );