From 94943d49881cefd7b0ebe09110881a58ae230f3f Mon Sep 17 00:00:00 2001 From: Barni03 Date: Sun, 26 Oct 2025 17:46:21 +0100 Subject: [PATCH] Handlenavigate --- .../src/components/Footer/Footer.jsx | 50 ++++++---- .../src/components/Navbar/Navbar.jsx | 92 +++++++++++++------ .../src/pages/Landing/Landingpage.jsx | 24 +---- .../utils/HandleNavigate/HandleNavigate.jsx | 28 ++++++ 4 files changed, 126 insertions(+), 68 deletions(-) create mode 100644 SerpentRace_Frontend/src/utils/HandleNavigate/HandleNavigate.jsx diff --git a/SerpentRace_Frontend/src/components/Footer/Footer.jsx b/SerpentRace_Frontend/src/components/Footer/Footer.jsx index 1c2f277e..2c04d798 100644 --- a/SerpentRace_Frontend/src/components/Footer/Footer.jsx +++ b/SerpentRace_Frontend/src/components/Footer/Footer.jsx @@ -1,6 +1,6 @@ import React, { useEffect, useRef, useState } from "react" -import { Link } from "react-router-dom" import Logo from "../../assets/pictures/Logo" +import HandleNavigate from "../../utils/HandleNavigate/HandleNavigate" const ArrowUpIcon = () => @@ -8,6 +8,9 @@ const Footer = () => { const [isVisible, setIsVisible] = useState(false) const footerRef = useRef(null) + // ✅ Használjuk a navigációs függvényeket + const { goLanding, goAbout, goContacts } = HandleNavigate() + useEffect(() => { const observer = new IntersectionObserver( ([entry]) => { @@ -16,14 +19,10 @@ const Footer = () => { { threshold: 0.3 } ) - if (footerRef.current) { - observer.observe(footerRef.current) - } + if (footerRef.current) observer.observe(footerRef.current) return () => { - if (footerRef.current) { - observer.unobserve(footerRef.current) - } + if (footerRef.current) observer.unobserve(footerRef.current) } }, []) @@ -40,10 +39,18 @@ const Footer = () => {
{/* Logó */}
- + +
{/* Oldalak */} @@ -51,15 +58,24 @@ const Footer = () => { Oldalak - + + +
{/* Közösség */} @@ -103,7 +119,7 @@ const Footer = () => { {isVisible && ( + {/* Desktop Menu */}
{/* Bal oldali linkek */} - Főoldal - Rólunk - Kapcsolat + + + {/* Csak bejelentkezve */} {isLoggedIn && ( <> - Paklik - Statisztikák + + Paklik + + + Statisztikák + )} {/* Játék gomb */} - Játék + {/* Jobb oldali akciók */} {!isLoggedIn ? (
- Bejelentkezés - + {/* Elválasztó vonal */}
@@ -108,9 +129,19 @@ const Navbar = () => { xmlns="http://www.w3.org/2000/svg" > {menuOpen ? ( - + ) : ( - + )} @@ -121,26 +152,27 @@ const Navbar = () => { {/* Mobile Menu */} {menuOpen && (
- setMenuOpen(false)} className={navLinkClass}>Főoldal - setMenuOpen(false)} className={navLinkClass}>Rólunk - setMenuOpen(false)} className={navLinkClass}>Kapcsolat + + + + {isLoggedIn && ( <> setMenuOpen(false)} className={navLinkClass}>Paklik setMenuOpen(false)} className={navLinkClass}>Statisztikák )} - setMenuOpen(false)} className={navLinkClassPlay}>Játék + + {!isLoggedIn ? (
- setMenuOpen(false)} + {/* Elválasztó vonal mobilon */}
diff --git a/SerpentRace_Frontend/src/pages/Landing/Landingpage.jsx b/SerpentRace_Frontend/src/pages/Landing/Landingpage.jsx index 3b1f8a8a..21f3bf83 100644 --- a/SerpentRace_Frontend/src/pages/Landing/Landingpage.jsx +++ b/SerpentRace_Frontend/src/pages/Landing/Landingpage.jsx @@ -7,28 +7,10 @@ import Navbar from "../../components/Navbar/Navbar" import Footer from "../../components/Footer/Footer.jsx" import Background from "../../assets/backgrounds/Background.jsx" import LandingPage from "../../components/Landingpage/LandingPage.jsx" +import HandleNavigate from "../../utils/HandleNavigate/HandleNavigate.jsx" export default function LandingPageMain() { - const navigate = useNavigate(); - - const handleNavigateToPlay = () => { - navigate("/login", { preventScrollReset: false }); - window.scrollTo(0, 0); - }; - - const handleNavigateToAuth = () => { - navigate("/companies", { preventScrollReset: false }); - window.scrollTo(0, 0); - }; - - const handleNavigateToGame = () => { - navigate("/home", { preventScrollReset: false }); - window.scrollTo(0, 0); - }; - - const handleNavigateToContacts = () => { - navigate("/contacts"); - }; + const { goHome, goLogin, goContacts, goAuth, } = HandleNavigate() return (
@@ -39,7 +21,7 @@ export default function LandingPageMain() {
- +
diff --git a/SerpentRace_Frontend/src/utils/HandleNavigate/HandleNavigate.jsx b/SerpentRace_Frontend/src/utils/HandleNavigate/HandleNavigate.jsx new file mode 100644 index 00000000..3e35b5d4 --- /dev/null +++ b/SerpentRace_Frontend/src/utils/HandleNavigate/HandleNavigate.jsx @@ -0,0 +1,28 @@ +// src/hooks/useAppNavigation.jsx +import { useNavigate } from "react-router-dom" + +/** + * Egy általános navigációs helper hook, amit bármelyik komponensben használhatsz. + * Minden funkció automatikusan a megfelelő útvonalra visz és visszagörget az oldal tetejére. + */ +export default function HandleNavigate() { + const navigate = useNavigate() + + const scrollTop = () => window.scrollTo(0, 0) + + const goTo = (path, preventScrollReset = false) => { + navigate(path, { preventScrollReset }) + scrollTop() + } + + return { + goTo, // általános útvonalváltó + goHome: () => goTo("/home"), + goLogin: () => goTo("/login"), + goAuth: () => goTo("/register"), + goCompanies: () => goTo("/companies"), + goContacts: () => goTo("/contacts"), + goAbout: () => goTo("/about"), + goLanding: () => goTo("/"), + } +}