import { useCallback } from "react"; import { useRouter } from 'next/navigation'; import Image from "next/image"; import { Github, Mail } from "lucide-react" import { Menubar, MenubarCheckboxItem, MenubarContent, MenubarLabel, MenubarItem, MenubarMenu, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, } from "@/components/ui/menubar" import { useState, useEffect } from "react" import { Button } from "@/components/ui/button" import { Separator } from '@/components/ui/separator'; import { useNavidrome } from "./NavidromeContext"; import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, } from "@/components/ui/dialog" import { Input } from "@/components/ui/input" import { Label } from "@/components/ui/label" interface MenuProps { toggleSidebar: () => void; isSidebarVisible: boolean; toggleStatusBar: () => void; isStatusBarVisible: boolean; } export function Menu({ toggleSidebar, isSidebarVisible, toggleStatusBar, isStatusBarVisible }: MenuProps) { const [isFullScreen, setIsFullScreen] = useState(false) const router = useRouter(); const [open, setOpen] = useState(false); const { isConnected } = useNavidrome(); // For this demo, we'll show connection status instead of user auth const connectionStatus = isConnected ? "Connected to Navidrome" : "Not connected"; const handleFullScreen = useCallback(() => { if (!isFullScreen) { document.documentElement.requestFullscreen() } else { document.exitFullscreen() } setIsFullScreen(!isFullScreen) }, [isFullScreen]) useEffect(() => { const handleKeyDown = (event: KeyboardEvent) => { if ((event.metaKey || event.ctrlKey) && event.key === ',') { event.preventDefault(); router.push('/settings'); } if ((event.metaKey || event.ctrlKey) && event.key === 's') { event.preventDefault(); toggleSidebar(); } if ((event.metaKey || event.ctrlKey) && event.key === 'f') { event.preventDefault(); handleFullScreen(); } }; window.addEventListener('keydown', handleKeyDown); return () => { window.removeEventListener('keydown', handleKeyDown); }; }, [router, toggleSidebar, handleFullScreen]); return ( <>
j
j