import Link from "next/link"; import { useState } from "react"; import { twMerge } from "tailwind-merge"; import type { KeyboardShortcut } from "~/providers/keyboard-shortcuts"; import LottieIcon from "~/components/LottieIcon"; import { useIsMobile } from "~/hooks/useMediaQuery"; import { useKeyboardShortcut } from "~/providers/keyboard-shortcuts"; const Button: React.FC<{ href: string; current: boolean; name: string; json: object; isCollapsed?: boolean; onCloseSideNav?: () => void; keyboardShortcut: KeyboardShortcut; }> = ({ href, current, name, json, isCollapsed = false, keyboardShortcut, onCloseSideNav, }) => { const [isHovered, setIsHovered] = useState(false); const [index, setIndex] = useState(0); const isMobile = useIsMobile(); const { keys: shortcutKeys } = useKeyboardShortcut(keyboardShortcut); const handleMouseEnter = () => { setIsHovered(true); setIndex((index) => index + 1); }; const handleClick = () => { if (onCloseSideNav && isMobile) { onCloseSideNav(); } }; return (
{name}
{!isCollapsed && (
{shortcutKeys}
)} ); }; export default Button;