import { ReactNode, useState } from 'react' import { ChevronDownIcon, MoreVerticalIcon, FolderOpenIcon, Code2Icon, } from 'lucide-react' import { twMerge } from 'tailwind-merge' import { useClickOutside } from '@/hooks/useClickOutside' interface Props { children: ReactNode title: string onRevealInFinderClick: (type: string) => void onViewJsonClick: (type: string) => void } export default function CardSidebar({ children, title, onRevealInFinderClick, onViewJsonClick, }: Props) { const [show, setShow] = useState(true) const [more, setMore] = useState(false) const [menu, setMenu] = useState(null) const [toggle, setToggle] = useState(null) useClickOutside(() => setMore(false), null, [menu, toggle]) return (
setMore(!more)} >
{more && (
{ onRevealInFinderClick(title) setMore(false) }} > Reveal in Finder
{ onViewJsonClick(title) setMore(false) }} > View as JSON
)}
{show && (
{children}
)}
) }