import { useState, useEffect, useCallback } from 'react'; import { databases, DATABASE_ID } from '@/lib/appwrite'; import { Query } from 'appwrite'; import { useLagerstandorte } from '@/hooks/useLagerstandorte'; import LagerstandortManager from './LagerstandortManager'; import UserAssignDialog from './UserAssignDialog'; import UserCreateForm from './UserCreateForm'; import { Card, CardHeader, CardTitle, CardContent } from '@/components/ui/card'; import { Button } from '@/components/ui/button'; import { Badge } from '@/components/ui/badge'; import { Separator } from '@/components/ui/separator'; import { AlertCircle } from 'lucide-react'; const ROLE_LABELS = { admin: 'Admin', firmenleiter: 'Firmenleiter', filialleiter: 'Filialleiter', service: 'Service', lager: 'Lager', }; export default function FilialDetail({ location: loc, onClose, showToast, onUserAdded }) { const [users, setUsers] = useState([]); const [showAssignDialog, setShowAssignDialog] = useState(false); const [showUserForm, setShowUserForm] = useState(false); const [showLsManager, setShowLsManager] = useState(false); const { lagerstandorte, addLagerstandort, toggleLagerstandort, deleteLagerstandort } = useLagerstandorte(loc?.$id || ''); const loadUsers = useCallback(async () => { if (!loc?.$id) return; try { const res = await databases.listDocuments(DATABASE_ID, 'users_meta', [ Query.equal('locationId', [loc.$id]), Query.limit(200), ]); setUsers(res.documents); } catch (err) { console.error('Benutzer laden fehlgeschlagen:', err); } }, [loc?.$id]); useEffect(() => { loadUsers(); }, [loadUsers]); const hasFilialleiter = users.some((u) => u.role === 'filialleiter'); return (
Keine Lagerstandorte
) : ( lagerstandorte.map((ls) => (Keine Benutzer
) : ( users.map((u) => (