Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
| import React from "react"; | |
| import { useNavigate, useSearchParams, useLocation } from "react-router-dom"; | |
| import { Box } from "@mui/material"; | |
| import HFLogo from "./HFLogo"; | |
| import { useLeaderboard } from "../../pages/LeaderboardPage/components/Leaderboard/context/LeaderboardContext"; | |
| const Logo = ({ height = "40px" }) => { | |
| const navigate = useNavigate(); | |
| const [searchParams, setSearchParams] = useSearchParams(); | |
| const location = useLocation(); | |
| const { actions } = useLeaderboard(); | |
| const handleReset = () => { | |
| // Reset all leaderboard state first | |
| actions.resetAll(); | |
| // Then clean URL in one go | |
| if ( | |
| location.pathname !== "/" || | |
| searchParams.toString() !== "" || | |
| location.hash !== "" | |
| ) { | |
| window.history.replaceState(null, "", "/"); | |
| navigate("/", { replace: true, state: { skipUrlSync: true } }); | |
| setSearchParams({}, { replace: true, state: { skipUrlSync: true } }); | |
| } | |
| }; | |
| return ( | |
| <Box | |
| onClick={handleReset} | |
| sx={{ | |
| height, | |
| display: "flex", | |
| alignItems: "center", | |
| justifyContent: "center", | |
| cursor: "pointer", | |
| transition: "opacity 0.2s ease", | |
| "&:hover": { | |
| opacity: 0.8, | |
| }, | |
| }} | |
| > | |
| <Box | |
| sx={{ | |
| height: "100%", | |
| aspectRatio: "95/88", // Ratio du SVG original (width/height) | |
| }} | |
| > | |
| <HFLogo /> | |
| </Box> | |
| </Box> | |
| ); | |
| }; | |
| export default Logo; | |