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

Abierto Apto para principiantes
#183 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
88/100
Tipo de issue
Nueva funcionalidad
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
dart, flutter
Área
mobile

Línea de trabajo

Empieza por mobile/lib/controllers/chat/active_chat_controller.dart y sigue openChat, loadMoreMessages y hasMoreMessages; después, lee mobile/lib/pages/chat/chat_page.dart y EmptyState en mobile/lib/widgets/ui/components.dart. Reproduce el problema deteniendo el servidor local mientras hay un chat abierto o haciendo que GET /api/messages devuelva un 500. El trabajo estará terminado cuando los fallos al cargar la primera página y las páginas anteriores muestren “Couldn't load messages” y un botón Try again, reintentar restablezca la paginación y los mensajes en caché sigan visibles.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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.

Lenguaje dominante
Dart
Estrellas
9
Forks
5
Merge medio
49 min
PR fusionados (30 d)
34

Preparar el entorno

  • Incluye un Dockerfile o un archivo de Docker Compose
  • Sin plantilla de pull request
  • Sin guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de CommandLineCoding/Elephant

Todos los issues de CommandLineCoding/Elephant

Issues similares

Más issues de Dart

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.