import { Users } from 'lucide-react'; import React, { useMemo, useState } from 'react'; import { TERMINAL_THEMES } from '../infrastructure/config/terminalThemes'; import { cn } from '../lib/utils'; import { TerminalTheme } from '../types'; import { AsidePanel, AsidePanelContent, } from './ui/aside-panel'; import { ScrollArea } from './ui/scroll-area'; interface ThemeSelectPanelProps { open: boolean; selectedThemeId?: string; onSelect: (themeId: string) => void; onClose: () => void; onBack?: () => void; showBackButton?: boolean; } // Mini terminal preview component const TerminalPreview: React.FC<{ theme: TerminalTheme; isSelected: boolean }> = ({ theme, isSelected }) => { return (
${' '} ls
dir/ file
${' '}
); }; const ThemeSelectPanel: React.FC = ({ open, selectedThemeId, onSelect, onClose, onBack, showBackButton = true, }) => { // Reserved for future hover preview feature const [_hoveredThemeId, setHoveredThemeId] = useState(null); // Group themes by type - reserved for future sectioned view const _groupedThemes = useMemo(() => { const dark = TERMINAL_THEMES.filter(t => t.type === 'dark'); const light = TERMINAL_THEMES.filter(t => t.type === 'light'); return { dark, light }; }, []); // Find selected theme info - reserved for displaying selection details const _selectedTheme = useMemo(() => { return TERMINAL_THEMES.find(t => t.id === selectedThemeId); }, [selectedThemeId]); const renderThemeItem = (theme: TerminalTheme) => { const isSelected = theme.id === selectedThemeId; return ( ); }; return (
{/* All themes in a single list */} {TERMINAL_THEMES.map(renderThemeItem)}
); }; export default ThemeSelectPanel;