INTRODUÇÃO
Post anterior: Dashboard de Produtividade Pessoal T2E03: BugCT1-8 Botões do Dashboard não funcionam
O objetivo deste post é apresentar o relato de um bug encontrado durante a execução do "Caso de Teste 1: Tarefa sem pausa", na temporada 2 da série Dashboard de Produtividade Pessoal.
Promp para Gemini 2.5 Pro
1 Objetivo
2 Contexto
- Frontend Dashboard de Produtividade Pessoal
- Backend Google Sheet
- Apps Scritp para integração do Dashboard com Google Sheet
- Não há login no App d2p (foi removido)
3 Dados e Fatos
- CódigoTarefa: S00.1.1.01; NomeTarefa: Tarefa 1 Teste 1; TamanhoTarefa: 5
- CódigoTarefa: S00.1.1.02; NomeTarefa: Tarefa 2 Teste 1; TamanhoTarefa: 1
- CódigoTarefa: S00.1.1.03; NomeTarefa: Tarefa 3 Teste 1; TamanhoTarefa: 3
- O teste funciona na opção Implantar / Testar implantações ou na opção Implantar / Gerenciar implantações, se a planilha não tiver tarefas preenchidas.
- O teste NÃO funciona se a planilha tiver tarefas preenchidas, aparecendo no console do Chrome a mensagem abaixo:
4 Código.gs
5 Dashboard.html
Resposta do Gemini 2.5 Pro
Olá! Entendi perfeitamente o problema. O erro Cannot read properties of null (reading 'tasks') acontece porque, quando a planilha tem dados (especialmente datas), o Google Apps Script pode falhar ao tentar serializar o objeto para enviá-lo ao frontend, resultando em um valor null na função de callback.
Para corrigir isso, a abordagem mais segura é converter o objeto de dados em uma string JSON no backend (Código.gs) e, em seguida, fazer o parse dessa string de volta para um objeto no frontend (Dashboard.html).
Apresento abaixo os dois arquivos com as devidas correções.
1. Correção no Backend (Código.gs)
Neste arquivo, modifiquei a função getInitialData para que ela retorne uma string JSON. Também adicionei um tratamento para garantir que as datas sejam convertidas para um formato de string padronizado (ISO), evitando problemas de serialização.
2. Correção no Frontend (Dashboard.html)
Aqui, a função dadosCarregadosComSucesso foi ajustada para receber a string JSON, fazer o parse dela e então popular o estado da aplicação. Isso resolve o erro ...reading 'tasks' of null, pois agora a função sempre receberá uma string válida para ser processada.
Com essas alterações, o problema de carregamento com a planilha preenchida será resolvido. O fluxo de dados entre o backend e o frontend se torna mais robusto e previsível.
CONCLUSÃO
O teste da correção foi executado com falha, porque o botão "Play Task" das tarefas continua desabilitado.
No próximo post será encaminhado outro Prompt para o Gemini 2.5 Pro corrigir.
Próximo post: Dashboard de Produtividade Pessoal T2E05: BugCT1-8 Teste da correção do botão PlayTask do Dashboard

Nenhum comentário:
Postar um comentário