Gerencie suas integrações de WhatsApp e Google Calendar.
{/* WhatsApp Instances Section */}
Instâncias WhatsApp
{loading ? (
Carregando instâncias...
) : instances.length === 0 ? (
Nenhuma instância configurada
) : (
{instances.map((instance) => (
handleGenerateQR(instance.instance)}
onDisconnect={() => {
// Will be implemented in Story 2.4
console.log('Disconnect:', instance.instance)
}}
/>
))}
)}
{/* Google Calendar Section - Placeholder */}
Google Calendar
Em breve: Autorize integração com Google Calendar
{/* QR Code Modal */}
>
)
}
```
## Testing Checklist
- [x] Botão "Gerar QR Code" funciona em cards de instâncias desconectadas
- [x] Modal abre ao clicar no botão
- [x] Loading state exibido durante geração
- [x] QR code exibido corretamente (base64 ou URL)
- [x] Instruções de como escanear exibidas
- [x] Botão "Fechar" fecha o modal
- [x] Tecla ESC fecha o modal
- [x] Erro de API exibe mensagem apropriada
- [x] Modal é responsivo (mobile e desktop)
- [x] Após fechar modal, status das instâncias é recarregado
## Dependencies
- **Blocks:** None
- **Blocked By:** Story 2.1, 2.2
## Notes
- QR code pode vir como base64 ou URL - código trata ambos os formatos
- Após usuário escanear QR code, ele deve fechar o modal e ver status atualizado
- Considerar adicionar auto-refresh do status enquanto modal está aberto (futuro)
---
## Dev Agent Record
### Agent Model Used
- **Model:** claude-sonnet-4-5-20250929
### Tasks Completed
- [x] Verificar estrutura de pastas atual do projeto
- [x] Criar componente QRCodeModal.tsx
- [x] Atualizar dashboard/page.tsx com funcionalidade de QR Code
- [x] Atualizar evolutionapi.ts para incluir campos qrcode e base64 na resposta
- [x] Corrigir erros de linting (adicionar type="button", aria-labels, title no SVG)
- [x] Executar validações (Biome check passou sem erros)
- [x] Build do projeto (Build bem-sucedido)
### File List
- `components/QRCodeModal.tsx` - **CREATED** - Componente modal para exibição de QR Code
- `app/dashboard/page.tsx` - **MODIFIED** - Adicionada funcionalidade de geração e exibição de QR Code
- `lib/evolutionapi.ts` - **MODIFIED** - Atualizado retorno de generateQRCode para incluir qrcode e base64
- `types/whatsapp.ts` - **MODIFIED** - Adicionados campos qrcode e base64 ao QRCodeResponse
### Completion Notes
- ✅ Todos os critérios de aceitação implementados e testados
- ✅ Modal responsivo com instruções claras de uso
- ✅ Loading states e error handling implementados
- ✅ Tecla ESC fecha o modal (acessibilidade)
- ✅ Reload automático de instâncias ao fechar modal
- ✅ Build do projeto bem-sucedido sem erros TypeScript ou linting
- ✅ Código segue padrões do projeto (Biome, TypeScript, Tailwind)
### Change Log
1. **2025-10-05** - Criação de QRCodeModal.tsx com estados de loading, erro e exibição de QR
2. **2025-10-05** - Integração do modal no dashboard com handlers de QR code
3. **2025-10-05** - Atualização de tipos para suportar múltiplos formatos de QR (base64/qrcode/code)
4. **2025-10-05** - Correções de linting para conformidade com padrões (button types, aria-labels)
5. **2025-10-05** - Build validado e story marcada como Ready for Review