feat(ui): Tabs ohne 'Root'; Favoriten-Tab hinzugefügt und filtert lokale Sterne

This commit is contained in:
vibe-bot 2025-08-08 03:31:28 +02:00
parent 99588e446c
commit b9295a9050
2 changed files with 11 additions and 3 deletions

View file

@ -225,8 +225,7 @@ app.get('/api/sounds', (req: Request, res: Response) => {
const filteredItems = itemsByFolder.filter((s) => (q ? s.name.toLowerCase().includes(q) : true)); const filteredItems = itemsByFolder.filter((s) => (q ? s.name.toLowerCase().includes(q) : true));
const total = allItems.length; const total = allItems.length;
const rootCount = rootFiles.length; const foldersOut = [{ key: '__all__', name: 'Alle', count: total }, ...folders];
const foldersOut = [{ key: '__all__', name: 'Alle', count: total }, { key: '', name: 'Root', count: rootCount }, ...folders];
res.json({ items: filteredItems, total, folders: foldersOut }); res.json({ items: filteredItems, total, folders: foldersOut });
}); });

View file

@ -132,6 +132,15 @@ export default function App() {
{folders.length > 0 && ( {folders.length > 0 && (
<nav className="tabs"> <nav className="tabs">
{/* Favoriten Tab */}
<button
key="__favs__"
className={`tab ${activeFolder === '__favs__' ? 'active' : ''}`}
type="button"
onClick={() => setActiveFolder('__favs__')}
>
Favoriten
</button>
{folders.map((f) => ( {folders.map((f) => (
<button <button
key={f.key} key={f.key}
@ -154,7 +163,7 @@ export default function App() {
{error && <div className="error">{error}</div>} {error && <div className="error">{error}</div>}
<section className="grid"> <section className="grid">
{filtered.map((s) => { {(activeFolder === '__favs__' ? filtered.filter((s) => !!favs[s.relativePath ?? s.fileName]) : filtered).map((s) => {
const key = `${s.relativePath ?? s.fileName}`; const key = `${s.relativePath ?? s.fileName}`;
const isFav = !!favs[key]; const isFav = !!favs[key];
return ( return (