'use client' import { useState, useEffect, useCallback } from 'react' import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card' import { Loader2, Users } from 'lucide-react' interface TeamMember { id: string user_id: string email: string role: 'owner' | 'admin' | 'member' joined_at: string | null is_current_user: boolean } const ROLE_LABELS: Record = { owner: 'Ägare', admin: 'Admin', member: 'Medlem', } export function TeamPanel() { const [isLoading, setIsLoading] = useState(true) const [members, setMembers] = useState([]) const [teamName, setTeamName] = useState('') const fetchMembers = useCallback(async () => { try { const res = await fetch('/api/team/members') const data = await res.json() if (res.ok) { setMembers(data.data.members) if (data.data.teamName) setTeamName(data.data.teamName) } } catch { // Silently fail } finally { setIsLoading(false) } }, []) useEffect(() => { fetchMembers() }, [fetchMembers]) if (isLoading) { return (
) } return (
{teamName || 'Team'}
{members.map((member) => (
{member.email.charAt(0).toUpperCase()}

{member.email} {member.is_current_user && ( (du) )}

{ROLE_LABELS[member.role] || member.role}

))}
) }