diff --git a/frontend/src/features/lists/SharedListsView.tsx b/frontend/src/features/lists/SharedListsView.tsx index c95dfea..903f199 100644 --- a/frontend/src/features/lists/SharedListsView.tsx +++ b/frontend/src/features/lists/SharedListsView.tsx @@ -81,9 +81,6 @@ export const SharedListsView: React.FC = ({ onRefreshGloba const [newListTitle, setNewListTitle] = useState(''); const [newListIcon, setNewListIcon] = useState('🛒'); - const [showNewSpaceModal, setShowNewSpaceModal] = useState(false); - const [newSpaceName, setNewSpaceName] = useState(''); - const [showShareModal, setShowShareModal] = useState(false); const [collaborators, setCollaborators] = useState([]); const [teams, setTeams] = useState([]); @@ -98,7 +95,15 @@ export const SharedListsView: React.FC = ({ onRefreshGloba const wsRef = useRef(null); const loadSpaces = async () => { - const sp = await api.getSpaces(); + let sp = await api.getSpaces(); + if (sp.length === 0) { + try { + const created = await api.createSpace('Meine Listen', '🛒', 'Persönliche und geteilte Einkaufslisten'); + sp = [created]; + } catch { + // fallback + } + } setSpaces(sp); if (sp.length > 0) { if (!activeSpace) { @@ -283,15 +288,17 @@ export const SharedListsView: React.FC = ({ onRefreshGloba onRefreshGlobal(); }; - const handleCreateSpace = async (e: React.FormEvent) => { - e.preventDefault(); - if (!newSpaceName.trim()) return; - const created = await api.createSpace(newSpaceName.trim(), '🏡', 'Geteilter Familien- & Team-Bereich'); - setNewSpaceName(''); - setShowNewSpaceModal(false); - const sp = await api.getSpaces(); - setSpaces(sp); - setActiveSpace(created); + const handleDeleteList = async (listId: string) => { + if (!window.confirm('Diese Liste wirklich löschen?')) return; + try { + await api.deleteList(listId); + if (activeSpace) { + await loadListsForSpace(activeSpace.id); + } + onRefreshGlobal(); + } catch (err: any) { + alert(err.message || 'Liste konnte nicht gelöscht werden'); + } }; const openShareModal = async () => { @@ -430,59 +437,6 @@ export const SharedListsView: React.FC = ({ onRefreshGloba return (
- {/* Spaces Bar */} -
-
- Bereich: - {spaces.map((sp) => ( - - ))} - - -
-
- - {/* Create Space Modal */} - {showNewSpaceModal && ( -
- setNewSpaceName(e.target.value)} - placeholder="Name des neuen Familien-/Team-Spaces (z. B. Urlaub 2026)…" - className="flex-1 h-9 px-3 input-field text-sm" - autoFocus - /> - -
- )} - {/* Top Header: List Tabs & Actions */}
{/* List Tabs */} @@ -491,21 +445,31 @@ export const SharedListsView: React.FC = ({ onRefreshGloba const openCount = lst.items.filter((i) => !i.isCompleted).length; const isSelected = activeList?.id === lst.id; return ( - + {isSelected && lists.length > 1 && ( + )} - +
); })}