Skip to content

Commit

Permalink
Merge pull request VanshKing30#441 from Bgmi10/main
Browse files Browse the repository at this point in the history
Feat : contributors page e2e
  • Loading branch information
hustlerZzZ authored Jul 15, 2024
2 parents 3c0e1c3 + a430a40 commit 56cd98b
Show file tree
Hide file tree
Showing 9 changed files with 151 additions and 23 deletions.
1 change: 0 additions & 1 deletion envexample

This file was deleted.

7 changes: 6 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,17 @@
"private": true,
"dependencies": {
"@emailjs/browser": "^4.3.3",
"@emotion/react": "^11.11.4",
"@emotion/styled": "^11.11.5",
"@mui/material": "^5.16.1",
"@react-icons/all-files": "^4.1.0",
"@testing-library/jest-dom": "^5.17.0",
"@testing-library/react": "^13.4.0",
"@testing-library/user-event": "^13.5.0",
"aos": "^2.3.4",
"axios": "^1.5.1",
"framer-motion": "^11.1.9",
"clsx": "^2.1.1",
"framer-motion": "^11.3.2",
"jwt-decode": "^4.0.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
Expand All @@ -22,6 +26,7 @@
"react-scripts": "5.0.1",
"react-spinners": "^0.13.8",
"react-toastify": "^9.1.3",
"tailwind-merge": "^2.4.0",
"web-vitals": "^2.1.4"
},
"scripts": {
Expand Down
1 change: 1 addition & 0 deletions public/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
<meta name="robots" content="index, follow" />
<meta name="googlebot" content="index, follow" />
<meta name="bingbot" content="index, follow" />

<!-- Open Graph -->
<meta property="og:type" content="website" />
<meta property="og:url" content="https://foodies-web-app.vercel.app/" />
Expand Down
11 changes: 0 additions & 11 deletions server/envexample

This file was deleted.

41 changes: 37 additions & 4 deletions src/App.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import React from "react";
import React, { useEffect, useState } from "react";
import "./App.css";
import { Route, Routes, Navigate } from "react-router-dom";
import Home from "./pages/Home";
Expand All @@ -17,33 +17,57 @@ import { ThemeProvider } from "./themeContext";
import ContactUs from "./pages/ContactUs";
import EditProfile from "./pages/EditProfile";
import OtpVerify from "./pages/OtpVerify";

import { Contributors } from "./pages/Contributors";
import Navbar from "./components/Navbar";


import Newss from "./components/Blog/newss";


const Layout = ({ children }) => {
return (
<div className="bg-cover bg-center min-h-screen bg-gradient-to-t from-blue-950 via-blue-950 to-gray-900 bg-no-repeat dark:bg-none">
<div className="bg-cover bg-center min-h-screen bg-gradient-to-t from-blue-950 via-blue-950 to-gray-900 bg-no-repeat dark:bg-none ">
{children}
</div>
);
};

function App() {

const [preloader , setPreloader] = useState(false)
const usertoken = localStorage.getItem("usertoken");
const token = localStorage.getItem("token");
const canteenId = localStorage.getItem("canteenId");
const hasAnyToken = token || usertoken;

useEffect(() =>{

const t = setTimeout(() => {
setPreloader(true)
}, 0);

return () => clearTimeout(t)

},[])

// Check if either token is undefined and redirect to login if true
if (usertoken === undefined || token === undefined) {
localStorage.removeItem("usertoken");
localStorage.removeItem("token");
window.location.href = "/login"; // Redirect to login page
return null; // Render nothing else
}






return (
<ThemeProvider>
<div className="">
{!preloader ? <Loader /> : <div className="">

<Routes>
<Route path="/" element={<Login />} />
<Route path="/forgotPassword" element={<ForgotPassword />} />
Expand Down Expand Up @@ -182,6 +206,15 @@ function App() {
</Layout>
}
/>
<Route
path="/contributors"
element={
<Layout>
<Contributors />
</Layout>
}
/>


<Route
path="*"
Expand All @@ -192,7 +225,7 @@ function App() {
}
/>
</Routes>
</div>
</div>}
</ThemeProvider>
);
}
Expand Down
15 changes: 11 additions & 4 deletions src/components/Navbar.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import React, { useContext, useState, useEffect } from "react";
import { Link } from "react-router-dom";
import logo from "../assets/logo2.png";
import { motion, AnimatePresence, useScroll } from "framer-motion";
import { IoClose } from "react-icons/io5";
import { IoClose } from "react-icons/io5";
import { GiHamburgerMenu } from "react-icons/gi";
import { jwtDecode } from "jwt-decode"; // Corrected import
import { ThemeContext } from "../themeContext";
Expand Down Expand Up @@ -56,10 +56,10 @@ const Navbar = () => {
</div>

<div className="hidden md:block">
<div className="ml-16 flex gap-6 items-baseline space-x-4">
<div className="ml-16 flex gap-4 items-baseline space-x-2">
{token ? (
<NavItem to={`/section/${canteenId}`} onClick={toggleMenu}>
<IconCanteen /> My Canteen
<IconCanteen /> My <span></span> Canteen
</NavItem>
) : (
<NavItem to="/home" onClick={toggleMenu}>
Expand All @@ -75,10 +75,14 @@ const Navbar = () => {
<NavItem to="/rateus" onClick={toggleMenu}>
<IconRateUs /> RateUs
</NavItem>
<NavItem to="/contributors" onClick={toggleMenu}>
<>
<img src="https://cdn-icons-png.freepik.com/256/12210/12210006.png?ga=GA1.2.1168591914.1718009553&semt=ais_hybrid" className="w-5 h-5 mt-5"/><sapn className="mt-5">Contributors</sapn></>
</NavItem>
</div>
</div>

<div className="hidden md:flex items-center gap-5">
<div className="hidden md:flex items-center gap-6">
<button
onClick={toggleTheme}
className="p-2 rounded focus:outline-none text-4xl border-none outline-none"
Expand Down Expand Up @@ -145,6 +149,9 @@ const Navbar = () => {
<MobileNavItem to="/rateus" onClick={toggleMenu}>
RateUs
</MobileNavItem>
<MobileNavItem to="/contributors" onClick={toggleMenu}>
Contributors
</MobileNavItem>
{canteenId && (
<MobileNavItem to={`/section/${canteenId}`} onClick={toggleMenu}>
My Canteen
Expand Down
2 changes: 1 addition & 1 deletion src/pages/AddFoodItem.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ function AddFoodItem() {

<form
onSubmit={handleSubmit}
className={`p-6 rounded shadow-lg w-full sm:w-2/5 rounded-3xl border-2 ${theme === 'dark' ? 'bg-gray-300' : 'bg-white'}`}
className={`p-6 shadow-lg w-full sm:w-2/5 rounded-3xl border-2 ${theme === 'dark' ? 'bg-gray-300' : 'bg-white'}`}

>
<h1 className="text-xl font-bold mb-4 text-black">Add Food Item</h1>
Expand Down
94 changes: 94 additions & 0 deletions src/pages/Contributors.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
import React, { useContext, useEffect, useState } from 'react'
import Navbar from '../components/Navbar';
import { Link } from 'react-router-dom';
import { ThemeContext } from '../themeContext';




export const Contributors = () => {
console.log(ThemeContext)
const [data , setData] = useState([])
const [page , setPage ] = useState(1)
const [scroll, setScroll] = useState(false)

const {theme} = useContext(ThemeContext)

const fetch_data = async () =>{
try{
const res = await fetch(`https://api.github.com/repos/VanshKing30/FoodiesWeb/contributors?page=${page}`)
const json = await res.json()

setData(prev => [...prev , ...json])


}
catch(error){
console.log(error)
}

}

useEffect(()=>{

fetch_data()

},[page])

useEffect(() =>{
if(scroll){
setPage(prev => prev + 1)
}


const handlescroll = () =>{

const trackscroll = window.scrollY + window.innerHeight >= document.body.scrollHeight
setScroll(trackscroll)
}
window.addEventListener('scroll' , handlescroll)


return () => window.removeEventListener('scroll' , handlescroll)
},[scroll])
return (
<>
<Navbar />
<div className='mb-10'>


<p className={theme === 'dark' ? 'text-2xl mt-[88px] font-bold text-white text-center p-4 ' : 'text-2xl mt-[88px] font-bold text-black text-center p-4 ' }>A <span className="text-3xl font-bold bg-gradient-to-r from-orange-700 via-blue-500 to-green-400 text-transparent bg-clip-text animate-gradient "> Big Thanks </span> to all our Contributors.</p>


<div className='p-3 text-gray-300 font-normal'>
<p className='text-center p-1'>We extend our heartfelt gratitude to the exceptional contributors of our project. Your talent and </p>
<p className='text-center p-1'>dedication have made a significant impact on our success. Your innovative ideas and </p>
<p className='text-center p-1'> valuable insights have enriched our codebase and improved our software. We </p>
<p className='text-center p-1'> appreciate your collaborative spirit and commitment to the community</p>
</div>

<div className='lg:grid grid-cols-3 '>
{
!data ? <p className='text-white font-serif text-center'>Loading...</p> : data?.map((i )=>(

<div key={i.login} className={theme === 'light' ? "border w-96 h-20 sm: ml-4 lg:ml-6 flex items-center p-2 m-2 rounded-md border-slate-700 bg-gray-300 hover:scale-105 hover:border-l-gray-300" : "border w-96 h-20 sm: ml-4 lg:ml-6 flex items-center p-2 m-2 rounded-md border-slate-700 bg-slate-800 hover:scale-105 hover:border-l-gray-300"}>
<img src={i.avatar_url} className="w-12 h-12 rounded-full mr-4 hover:scale-110" alt="avatar" />
<div className="flex-1">
<p className={theme === 'dark' ? " text-white" : 'text-black'}>{i.login}</p>
<Link to={i.html_url}>
<h1 className={theme === 'dark'? "text-gray-400 text-sm cursor-pointer hover:text-gray-300" : "text-gray-400 text-sm cursor-pointer hover:text-gray-700"}>more details</h1>
</Link>
</div>
</div>

))
}

</div>

</div>
</>
)
}


2 changes: 1 addition & 1 deletion src/pages/Home.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ function Home() {
<Loader />
) : (
<div className="min-h-screen dark:bg-teal-700">
<Navbar />
<Navbar />
<div className="mx-auto max-w-2xl p-4" style={{ paddingTop: "120px" }}>
<div className="relative">
<AiOutlineSearch className="absolute top-2 left-3 text-gray-400" size={24} />
Expand Down

0 comments on commit 56cd98b

Please sign in to comment.