[FEAT]: Show an error with Try again when a chat's history fails to load

Aberta Para iniciantes
#183 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
2/5
Tempo estimado
1-3 horas
Facilidade para iniciantes
88/100
Tipo de issue
Funcionalidade
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
dart, flutter
Domínio
mobile

Direção de pesquisa

Comece por mobile/lib/controllers/chat/active_chat_controller.dart e acompanhe openChat, loadMoreMessages e hasMoreMessages; depois, leia mobile/lib/pages/chat/chat_page.dart e EmptyState em mobile/lib/widgets/ui/components.dart. Reproduza o problema parando o servidor local enquanto um chat está aberto ou fazendo GET /api/messages retornar 500. O trabalho estará concluído quando falhas ao carregar a primeira página e páginas anteriores exibirem “Couldn't load messages” e um botão Try again, uma nova tentativa redefinir a paginação e as mensagens em cache continuarem visíveis.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

area: mobile enhancement good first issue

Context

If loading a chat's history fails (server error, offline), the chat currently shows only cached messages and a spinner, or nothing, with no explanation. #174 stopped it from retrying in a loop. Now it just stops quietly.

What to do

  • When the first page or an older page fails, show a short message in the chat ("Couldn't load messages") with a Try again button.
  • Try again resets paging and loads again.
  • Keep cached messages visible while showing the error.

Where to look

mobile/lib/controllers/chat/active_chat_controller.dart (openChat, loadMoreMessages, hasMoreMessages), mobile/lib/pages/chat/chat_page.dart, and EmptyState in mobile/lib/widgets/ui/components.dart for styling.

Good to know

To reproduce, point the app at a local server and stop the server while a chat is open, or make GET /api/messages return 500.

Linguagem predominante
Dart
Estrelas
9
Forks
5
Merge médio
49min
PRs com merge (30d)
34

Preparar o ambiente

  • Inclui um Dockerfile ou arquivo Docker Compose
  • Sem modelo de pull request
  • Sem guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de CommandLineCoding/Elephant

Todas as issues de CommandLineCoding/Elephant

Issues semelhantes

Mais issues de Dart

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.