From f5cbbf8024f875b77fbd0cd0923e12b670dfa844 Mon Sep 17 00:00:00 2001 From: Roman A <121314722+GameRoMan@users.noreply.github.com> Date: Sat, 17 May 2025 15:03:57 +0100 Subject: [PATCH] feat : allow opening NavBar icon links with middle-click (#28) --- src/sections/layout/NavBar.tsx | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/src/sections/layout/NavBar.tsx b/src/sections/layout/NavBar.tsx index aacd638..913390b 100644 --- a/src/sections/layout/NavBar.tsx +++ b/src/sections/layout/NavBar.tsx @@ -3,7 +3,7 @@ import Box from "@mui/material/Box"; import Toolbar from "@mui/material/Toolbar"; import Typography from "@mui/material/Typography"; import IconButton from "@mui/material/IconButton"; -import { useEffect, useState } from "react"; +import { useEffect, useState, useCallback } from "react"; import NavMenu from "./NavMenu"; import { Icon } from "@iconify/react"; import { useRouter } from "next/router"; @@ -23,6 +23,17 @@ export default function NavBar({ darkMode, switchDarkMode }: Props) { setDrawerOpen(false); }, [router.pathname]); + const handleIconClick = useCallback((url: string, event: React.MouseEvent) => { + if (event.button === 0 || event.button === 1) { + // Left click (0) or middle click (1) + window.open(url, "_blank", "noopener,noreferrer"); + if (event.button === 0) { + // If left click, focus the new tab + window.focus(); + } + } + }, []); + return ( window.open("https://discord.gg/Yr99abAcUr")} + onClick={(event) => + handleIconClick("https://discord.gg/Yr99abAcUr", event) + } > - window.open("https://github.com/GuillaumeSD/Chesskit") + onClick={(event) => + handleIconClick("https://github.com/GuillaumeSD/Chesskit", event) } >