diff --git a/src/App.tsx b/src/App.tsx index 5276d5b..d672df3 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -29,6 +29,7 @@ const DonatePage = Loadable(React.lazy(() => import("./features/Donations/pages/ const LoginPage = Loadable(React.lazy(() => import("./features/Auth/pages/LoginPage/LoginPage"))) const LogoutPage = Loadable(React.lazy(() => import("./features/Auth/pages/LogoutPage/LogoutPage"))) const ProfilePage = Loadable(React.lazy(() => import("./features/Profiles/pages/ProfilePage/ProfilePage"))) +const EditProfilePage = Loadable(React.lazy(() => import("./features/Profiles/pages/EditProfilePage/EditProfilePage"))) @@ -104,7 +105,9 @@ function App() { } /> + } /> } /> + } /> } /> diff --git a/src/Components/Navbar/NavDesktop.tsx b/src/Components/Navbar/NavDesktop.tsx index 797b6ab..4fa8a9a 100644 --- a/src/Components/Navbar/NavDesktop.tsx +++ b/src/Components/Navbar/NavDesktop.tsx @@ -178,6 +178,16 @@ export default function NavDesktop() { > 👾 Profile + { + e.syntheticEvent.preventDefault(); + navigate("/edit-profile"); + }} + className='!p-16 font-medium flex gap-16 hover:bg-gray-100 !rounded-12' + > + ⚙️ Settings + { diff --git a/src/Components/Navbar/NavMobile.tsx b/src/Components/Navbar/NavMobile.tsx index badf325..023b0ea 100644 --- a/src/Components/Navbar/NavMobile.tsx +++ b/src/Components/Navbar/NavMobile.tsx @@ -105,6 +105,16 @@ export default function NavMobile() { > 👾 Profile + { + e.syntheticEvent.preventDefault(); + navigate("/edit-profile"); + }} + className='!p-16 font-medium flex gap-16 hover:bg-gray-100 !rounded-12' + > + ⚙️ Settings + { diff --git a/src/Components/Navbar/Navbar.tsx b/src/Components/Navbar/Navbar.tsx index 9125eef..b1d9f32 100644 --- a/src/Components/Navbar/Navbar.tsx +++ b/src/Components/Navbar/Navbar.tsx @@ -1,7 +1,7 @@ import NavMobile from "./NavMobile"; import { MdComment, MdHomeFilled, MdLocalFireDepartment } from "react-icons/md"; -import { useEffect, } from "react"; -import { useAppDispatch, useMediaQuery } from "src/utils/hooks"; +import { useCallback, useEffect, } from "react"; +import { useAppDispatch, useMediaQuery, useResizeListener } from "src/utils/hooks"; import { setNavHeight } from "src/redux/features/ui.slice"; import NavDesktop from "./NavDesktop"; import { MEDIA_QUERIES } from "src/utils/theme/media_queries"; @@ -43,18 +43,24 @@ export default function Navbar() { const isLargeScreen = useMediaQuery(MEDIA_QUERIES.isLarge) - - useEffect(() => { + const updateNavHeight = useCallback(() => { const nav = document.querySelector("nav"); if (nav) { const navStyles = getComputedStyle(nav); if (navStyles.display !== "none") { dispatch(setNavHeight(nav.clientHeight)); + document.documentElement.style.setProperty('--navHeight', nav.clientHeight + 'px') } } - }, [dispatch]) + useEffect(() => { + updateNavHeight(); + }, [updateNavHeight]); + + useResizeListener(updateNavHeight) + + return (
diff --git a/src/features/Hackathons/pages/HackathonsPage/HackathonsPage.tsx b/src/features/Hackathons/pages/HackathonsPage/HackathonsPage.tsx index d097d0e..83b99f0 100644 --- a/src/features/Hackathons/pages/HackathonsPage/HackathonsPage.tsx +++ b/src/features/Hackathons/pages/HackathonsPage/HackathonsPage.tsx @@ -2,7 +2,6 @@ import { useState } from 'react' import Button from 'src/Components/Button/Button' import { useGetHackathonsQuery } from 'src/graphql' -import { useAppSelector } from 'src/utils/hooks' import HackathonsList from '../../Components/HackathonsList/HackathonsList' import SortByFilter from '../../Components/SortByFilter/SortByFilter' import styles from './styles.module.scss' @@ -21,9 +20,6 @@ export default function HackathonsPage() { tag: Number(tagFilter) }, }) - const { navHeight } = useAppSelector((state) => ({ - navHeight: state.ui.navHeight - })); return ( <> @@ -35,11 +31,7 @@ export default function HackathonsPage() { className={`page-container pt-16 w-full ${styles.grid}`} >