vistas de ciudadano, escalar animaciones de mascota, implementacion de chatbot para concientizacion, modificacion de datos de ciudadano, modificacion de vista principal
This commit is contained in:
@@ -9,6 +9,7 @@
|
||||
// 5. FCM badge
|
||||
// 6. Horario semanal
|
||||
|
||||
import 'dart:async';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
@@ -87,11 +88,20 @@ class _EtaResult {
|
||||
// Provider de ETA
|
||||
// ─────────────────────────────────────────────────────────────────────────────
|
||||
class _EtaNotifier extends AsyncNotifier<_EtaResult> {
|
||||
Timer? _timer;
|
||||
|
||||
@override
|
||||
Future<_EtaResult> build() => _fetch();
|
||||
Future<_EtaResult> build() {
|
||||
// Polling silencioso cada 10 segundos para ver la simulación en vivo
|
||||
_timer?.cancel();
|
||||
_timer = Timer.periodic(const Duration(seconds: 10), (_) => refresh());
|
||||
ref.onDispose(() => _timer?.cancel());
|
||||
|
||||
return _fetch();
|
||||
}
|
||||
|
||||
Future<void> refresh() async {
|
||||
state = const AsyncValue.loading();
|
||||
// Eliminamos el estado "loading" explícito para evitar que la UI parpadee
|
||||
state = await AsyncValue.guard(_fetch);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user