budget-view-finance/src/components/whatsappGroups/GroupsList.tsx
gpt-engineer-app[bot] 7970b1b99f feat: Use user-provided group name and display created groups
- Modified the WhatsApp group creation to use the user-entered group name instead of the default.
- Implemented the display of created group cards in the "Seus grupos cadastrados" section, including a delete option.
2025-06-16 21:05:35 +00:00

52 lines
1.7 KiB
TypeScript

import { Card, CardContent, CardHeader, CardTitle, CardDescription } from '@/components/ui/card';
import { Loader2, MessageSquare } from 'lucide-react';
import { WhatsAppGroup } from '@/types/financialTypes';
import GroupCard from './GroupCard';
interface GroupsListProps {
grupos: WhatsAppGroup[];
carregando: boolean;
onDeleteGroup: (groupId: number) => void;
}
const GroupsList = ({ grupos, carregando, onDeleteGroup }: GroupsListProps) => {
// Filtrar apenas grupos que têm nome_grupo preenchido
const gruposComNome = grupos.filter(grupo => grupo.nome_grupo && grupo.nome_grupo.trim() !== '');
return (
<Card>
<CardHeader>
<CardTitle>Seus grupos cadastrados</CardTitle>
<CardDescription>
Lista de grupos do WhatsApp que você cadastrou
</CardDescription>
</CardHeader>
<CardContent>
{carregando ? (
<div className="flex justify-center py-8">
<Loader2 className="h-8 w-8 animate-spin text-primary" />
</div>
) : gruposComNome.length > 0 ? (
<div className="grid gap-4 md:grid-cols-2 lg:grid-cols-3">
{gruposComNome.map((grupo) => (
<GroupCard
key={grupo.id}
group={grupo}
onDelete={onDeleteGroup}
/>
))}
</div>
) : (
<div className="text-center py-8">
<MessageSquare className="h-12 w-12 text-muted-foreground opacity-20 mx-auto mb-4" />
<p className="text-muted-foreground">Você ainda não cadastrou nenhum grupo</p>
</div>
)}
</CardContent>
</Card>
);
};
export default GroupsList;