import React from 'react'; import { createPortal } from 'react-dom'; import { useTranslation } from 'react-i18next'; import { Check, ChevronDown, Music2 } from 'lucide-react'; interface MusicFolder { id: string; name: string } interface Props { filterId: string; selectedFolderName: string | null; libraryDropdownOpen: boolean; setLibraryDropdownOpen: (open: boolean) => void; dropdownRect: { top: number; left: number; width: number }; libraryTriggerRef: React.RefObject; musicFolders: MusicFolder[]; pickLibrary: (id: 'all' | string) => void; } export default function SidebarLibraryPicker({ filterId, selectedFolderName, libraryDropdownOpen, setLibraryDropdownOpen, dropdownRect, libraryTriggerRef, musicFolders, pickLibrary, }: Props) { const { t } = useTranslation(); const libraryTriggerPlain = filterId === 'all'; return ( <> {libraryDropdownOpen && createPortal(
10 ? ' nav-library-dropdown-panel--many-libraries' : ''}`} role="listbox" aria-label={t('sidebar.libraryScope')} style={{ position: 'fixed', top: dropdownRect.top, left: dropdownRect.left, width: dropdownRect.width, minWidth: dropdownRect.width, maxWidth: dropdownRect.width, boxSizing: 'border-box', }} > {musicFolders.map(f => ( ))}
, document.body )} ); }