diff --git a/src/components/buttons/Button.tsx b/src/components/buttons/Button.tsx index f5c81b8d..8502e506 100644 --- a/src/components/buttons/Button.tsx +++ b/src/components/buttons/Button.tsx @@ -1,5 +1,6 @@ import classNames from "classnames"; import { ReactNode, useCallback } from "react"; +import { useNavigate } from "react-router-dom"; import { Icon, Icons } from "@/components/Icon"; import { Spinner } from "@/components/layout/Spinner"; @@ -20,6 +21,7 @@ interface Props { } export function Button(props: Props) { + const navigate = useNavigate(); const { onClick, href, loading } = props; const cb = useCallback( ( @@ -31,10 +33,14 @@ export function Button(props: Props) { if (loading) return; if (href && !onClick) { event.preventDefault(); - window.open(href, "_blank", "noreferrer"); + if (!href.includes("http")) { + navigate(href); + } else { + window.open(href, "_blank", "noreferrer"); + } } else onClick?.(event); }, - [onClick, href, loading], + [loading, href, onClick, navigate], ); let colorClasses = "bg-white hover:bg-gray-200 text-black";