Skip to content

Commit 5bc5094

Browse files
committed
Bug Fixed- DarkMode Features
1 parent eef01fe commit 5bc5094

File tree

8 files changed

+376
-298
lines changed

8 files changed

+376
-298
lines changed

client/package-lock.json

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

client/src/components/Header.jsx

Lines changed: 24 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,45 @@
1-
import React, { useState,useEffect } from "react";
2-
import { Link, useNavigate } from "react-router-dom";
1+
import React, { useState, useEffect } from "react";
2+
import { Link, useNavigate, useLocation } from "react-router-dom";
33
import { useAuth } from "../middleware/AuthContext";
44
import ThemeToggle from "./ThemeToggle";
5-
import gsap from 'gsap'
6-
import {tl} from './gsap.js'
5+
import gsap from 'gsap';
6+
import { tl } from './gsap.js';
77

88
const Header = () => {
99
const [isOpen, setIsOpen] = useState(false);
1010
const { user, logout } = useAuth();
1111
const navigate = useNavigate();
12+
const location = useLocation(); // Get the current location
1213

13-
//gsap starts
14-
useEffect(() => {
14+
// gsap starts
15+
useEffect(() => {
1516
const ctx = gsap.context(() => {
16-
tl.fromTo('.navGsap',
17-
{
17+
tl.fromTo('.navGsap', {
1818
y: -100, // Starting position (from)
1919
opacity: 0, // Starting opacity (from)
20-
},
21-
{
20+
}, {
2221
y: 0, // Ending position (to)
2322
opacity: 1, // Ending opacity (to)
2423
duration: 0.5, // Animation duration
2524
ease: "sine.in", // Easing function
26-
stagger: 0.1,
27-
28-
}
29-
);
30-
});
31-
32-
return () => ctx.revert(); // Cleanup when the component unmounts
33-
}, []);
34-
35-
//gsap ends
36-
25+
stagger: 0.1,
26+
});
27+
});
3728

29+
return () => ctx.revert(); // Cleanup when the component unmounts
30+
}, []);
31+
// gsap ends
3832

3933
const handleLogout = () => {
4034
logout();
4135
navigate("/login");
4236
};
4337

38+
// Check if the current route is Register or Login
39+
const isAuthPage = location.pathname === '/login' || location.pathname === '/register';
40+
4441
return (
45-
<header className="bg-black text-white shadow-lg">
42+
<header className={`bg-black text-white shadow-lg ${isAuthPage ? 'theme-light' : ''}`}>
4643
<div className="container mx-auto flex justify-between items-center px-6 py-4">
4744
{/* Logo */}
4845
<div className="navGsap">
@@ -113,9 +110,11 @@ useEffect(() => {
113110
</nav>
114111

115112
{/* Theme Toggle */}
116-
<div className="hidden md:block">
117-
<ThemeToggle />
118-
</div>
113+
{!isAuthPage && (
114+
<div className="hidden md:block">
115+
<ThemeToggle />
116+
</div>
117+
)}
119118

120119
{/* Mobile Menu Button */}
121120
<button
Lines changed: 44 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,50 @@
1-
import React from "react";
2-
import UserCards from "./UserCards";
1+
import React, { useEffect, useState } from "react";
2+
import UserCard from "./UserCards";
33

44
const OurAlumni = () => {
5+
const [isDarkMode, setIsDarkMode] = useState(false);
56

6-
const user = {
7-
name: "AbhiShek Rao",
8-
email: "johndoe@example.com",
9-
avatar: "https://i.postimg.cc/q7HVzS6f/Abhi.jpg",
10-
city: "Gorakhpur",
11-
role: "Web Developer",
12-
passOut: "MCA 2025",
13-
};
14-
15-
return (
16-
<>
17-
<div className="container mx-auto px-4">
18-
<div className="flex flex-wrap -mx-4" style={{marginTop:"10vh"}}>
19-
<div className="w-full md:w-1/2 xl:w-1/3 p
20-
x-4 mb-8">
21-
<UserCards user={user} />
22-
</div>
23-
<div className="w-full md:w-1/2 xl:w-1/3 px-4 mb-8">
24-
<UserCards user={user} />
25-
</div>
26-
<div className="w-full md:w-1/2 xl:w-1/3 px-4 mb-8">
27-
<UserCards user={user} />
28-
29-
</div>
30-
</div>
31-
32-
</div>
33-
</>
34-
35-
);
7+
useEffect(() => {
8+
const matchDark = window.matchMedia("(prefers-color-scheme: dark)");
9+
setIsDarkMode(matchDark.matches);
10+
11+
const listener = (e) => setIsDarkMode(e.matches);
12+
matchDark.addListener(listener);
13+
14+
return () => matchDark.removeListener(listener);
15+
}, []);
16+
17+
const cardStyles = {
18+
backgroundColor: isDarkMode ? "#1a1a1a" : "#ffffff",
19+
color: isDarkMode ? "#f5f5f5" : "#000000",
20+
};
21+
22+
const user = {
23+
name: "AbhiShek Rao",
24+
email: "johndoe@example.com",
25+
avatar: "https://i.postimg.cc/q7HVzS6f/Abhi.jpg",
26+
city: "Gorakhpur",
27+
role: "Web Developer",
28+
passOut: "MCA 2025",
29+
};
30+
31+
return (
32+
<>
33+
<div className="container mx-auto px-4">
34+
<div className="flex flex-wrap -mx-4" style={{ marginTop: "10vh" }}>
35+
<div className="w-full md:w-1/2 xl:w-1/3 px-4 mb-8">
36+
<UserCard user={user} cardStyles={cardStyles} />
37+
</div>
38+
<div className="w-full md:w-1/2 xl:w-1/3 px-4 mb-8">
39+
<UserCard user={user} cardStyles={cardStyles} />
40+
</div>
41+
<div className="w-full md:w-1/2 xl:w-1/3 px-4 mb-8">
42+
<UserCard user={user} cardStyles={cardStyles} />
43+
</div>
44+
</div>
45+
</div>
46+
</>
47+
);
3648
};
3749

3850
export default OurAlumni;

0 commit comments

Comments
 (0)