import { useState, useEffect } from 'react'; import api from '../api/client'; import PackageGrid from '../components/PackageGrid'; import { RefreshCw, Search, LayoutGrid, List } from 'lucide-react'; export default function Installed() { const [packages, setPackages] = useState([]); const [filtered, setFiltered] = useState([]); const [loading, setLoading] = useState(true); const [filter, setFilter] = useState(''); const [error, setError] = useState(null); const [viewMode, setViewMode] = useState('grid'); useEffect(() => { load(); }, []); useEffect(() => { if (!filter.trim()) { setFiltered(packages); return; } const q = filter.toLowerCase(); setFiltered(packages.filter(p => p.name.toLowerCase().includes(q) || (p.description && p.description.toLowerCase().includes(q)) )); }, [filter, packages]); async function load() { setLoading(true); setError(null); try { const data = await api.listInstalled(); setPackages(data.results || []); } catch (err) { setError(err.message); } finally { setLoading(false); } } return (
{packages.length > 0 ? `${packages.length} packages on your system` : 'Loading...'}
No packages found
) : (