import { useState } from 'react' import { Puzzle, Settings2, Search, Grid, List } from 'lucide-react' import { useAppStore } from '../store/appStore' import type { Plugin } from '../store/appStore' export default function Plugins() { const { plugins, activatePlugin, deactivatePlugin } = useAppStore() const [searchQuery, setSearchQuery] = useState('') const [viewMode, setViewMode] = useState<'grid' | 'list'>('grid') const [_selectedPlugin, __setSelectedPlugin] = useState(null) const filteredPlugins = plugins.filter(p => p.name.toLowerCase().includes(searchQuery.toLowerCase()) || p.description.toLowerCase().includes(searchQuery.toLowerCase()) ) const activePlugins = filteredPlugins.filter(p => p.active) const inactivePlugins = filteredPlugins.filter(p => !p.active) return (

Plugins

Manage your EU-Utility plugins

setSearchQuery(e.target.value)} placeholder="Search plugins..." className="pl-10 pr-4 py-2 bg-surface border border-border rounded-lg text-sm focus:outline-none focus:border-primary w-64" />
{/* Active Plugins */} {activePlugins.length > 0 && (

Active Plugins ({activePlugins.length})

{activePlugins.map((plugin) => ( activatePlugin(plugin.id)} onDeactivate={() => deactivatePlugin(plugin.id)} onClick={() => _setSelectedPlugin(plugin)} viewMode={viewMode} /> ))}
)} {/* Inactive Plugins */} {inactivePlugins.length > 0 && (

Inactive Plugins ({inactivePlugins.length})

{inactivePlugins.map((plugin) => ( activatePlugin(plugin.id)} onDeactivate={() => deactivatePlugin(plugin.id)} onClick={() => _setSelectedPlugin(plugin)} viewMode={viewMode} /> ))}
)} {/* Empty State */} {filteredPlugins.length === 0 && (

No plugins found

Try adjusting your search

)}
) } interface PluginCardProps { plugin: Plugin onActivate: () => void onDeactivate: () => void onClick: () => void viewMode: 'grid' | 'list' } function PluginCard({ plugin, onActivate, onDeactivate, onClick, viewMode }: PluginCardProps) { if (viewMode === 'list') { return (

{plugin.name}

{plugin.description}

v{plugin.version} {plugin.active ? ( ) : ( )}
) } return (
{plugin.active ? (
Active
) : (
Inactive
)}

{plugin.name}

{plugin.description}

{plugin.author} v{plugin.version}
{plugin.active ? ( <> ) : ( )}
) }