From 71dafbd45cfcb961818b7b2a5eefbba3255f160b Mon Sep 17 00:00:00 2001 From: Nathan Stitt Date: Fri, 13 Dec 2024 13:24:44 -0600 Subject: [PATCH] don't trigger on special types of activations --- src/components/button.tsx | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/components/button.tsx b/src/components/button.tsx index b593739..80a244a 100644 --- a/src/components/button.tsx +++ b/src/components/button.tsx @@ -1,13 +1,28 @@ import Link from 'next/link' import { Button, type ButtonProps } from '@mantine/core' import { useDisclosure } from '@mantine/hooks'; +import { MouseEventHandler } from 'react'; +type ButtonLinkProps = ButtonProps & { + href: string + target?: string + rel?: string +} -export const ButtonNav: React.FC<{ href: string } & ButtonProps> = ({ href, children, ...buttonProps }) => { +export const ButtonNav: React.FC = ({ href, children, target, rel, ...buttonProps }) => { const [isBusy, { open: setBusy }] = useDisclosure() + const handleClicks = Boolean(target !== '_blank' && rel !== 'external') + + const onClick: MouseEventHandler = (event) => { + if (event.button != null && event.button > 0) return; // 0 == main button + if (event.metaKey || event.ctrlKey || event.shiftKey || event.altKey) return; + if (event.defaultPrevented) return; + + setBusy() + } return ( - + )