diff --git a/frontend/src/features/lists/SharedListsView.tsx b/frontend/src/features/lists/SharedListsView.tsx index 8e195ef..473049f 100644 --- a/frontend/src/features/lists/SharedListsView.tsx +++ b/frontend/src/features/lists/SharedListsView.tsx @@ -1,8 +1,6 @@ import React, { useEffect, useMemo, useRef, useState } from 'react'; import { Plus, - CheckCircle2, - Circle, Trash2, Users, Check, @@ -497,111 +495,139 @@ export const SharedListsView: React.FC = ({ onRefreshGloba )} - {/* Active Shared List Card */} + {/* Active Shared List View */} {activeList ? ( -
+
{/* Quick-Add Form */} -
-
+ +
+ setNewItemText(e.target.value)} - placeholder={`Eintrag zu "${activeList.title}" hinzufügen (z. B. Hafermilch #Kühlregal oder #Kaffee)…`} - className="flex-1 h-9 px-3 input-field text-sm" + placeholder={`Eintrag zu "${activeList.title}" hinzufügen (z. B. Hafermilch #Kühlregal)…`} + className="flex-1 bg-transparent py-1 text-sm text-main placeholder-faint focus:outline-none" /> -
- setNewItemQty(e.target.value)} - placeholder="Menge (z.B. 2x)" - className="w-32 h-9 px-3 input-field text-sm" - /> - -
+
+
+ setNewItemQty(e.target.value)} + placeholder="Menge (z.B. 2x)" + className="w-28 h-7 px-2 input-field text-xs" + /> +
{/* Open Items Grouped by Hashtags / Categories */} -
- {openItems.length === 0 ? ( -
+ {openItems.length === 0 ? ( +
+

- Alles erledigt. Keine offenen Punkte auf dieser Liste. -

- ) : ( - groupedOpenItems.map((group) => ( -
- {/* Category Group Header (only when categories are in use) */} + Alles erledigt +

+

Keine offenen Punkte auf dieser Liste.

+
+ ) : ( +
+ {groupedOpenItems.map((group) => ( +
+ {/* Category Group Header: white text directly on canvas background */} {group.label && ( -
- - {group.label} +
+ + {group.label} - - {group.items.length} {group.items.length === 1 ? 'Eintrag' : 'Einträge'} + + {group.items.length}
)} - {group.items.map((item) => { - const cat = getItemCategory(item); - const displayContent = getItemDisplayContent(item); + {/* Lighter panel-surface card container with items */} +
+ {group.items.map((item) => { + const cat = getItemCategory(item); + const displayContent = getItemDisplayContent(item); - return ( -
handleToggleItem(item)} - className="px-3 py-2 bg-canvas hover:bg-panel-elevated flex items-center justify-between gap-3 cursor-pointer transition-colors group" - > -
- - - {displayContent} - - {item.quantity && ( - - {item.quantity} - - )} - {cat && ( - - #{cat} - - )} -
- - -
- ); - })} +
+ {/* Eckiges Abhaken */} + + + + {displayContent} + + + {item.quantity && ( + + {item.quantity} + + )} + + {cat && !group.label && ( + + #{cat} + + )} +
+ + +
+ ); + })} +
- )) - )} -
+ ))} +
+ )} {/* Completed Items Section */} {completedItems.length > 0 && ( -
-
- +
+
+ Erledigt ({completedItems.length})
-
+
{completedItems.map((item) => { - const cat = getItemCategory(item); const displayContent = getItemDisplayContent(item); return (
handleToggleItem(item)} - className="px-3 py-1.5 bg-canvas/50 hover:bg-canvas/80 flex items-center justify-between gap-3 cursor-pointer transition-colors" + className="px-3 py-2 flex items-center justify-between gap-3 cursor-pointer hover:bg-panel-hover transition-colors group" > -
- - +
+ {/* Eckiges Abhaken */} + + + {displayContent} + {item.quantity && ( ({item.quantity}) )} - {cat && ( - - #{cat} - - )}
- {item.completedByName && ( - ✓ {item.completedByName} - )} + +
+ {item.completedByName && ( + ✓ {item.completedByName} + )} + +
); })}