Co-authored-by: MENDOZA BALLARDO GAEL RICARDO <gael-meb123@users.noreply.github.com>

version final final ya enserio la final del proyecto :)
This commit is contained in:
shinra32
2026-05-23 08:42:27 -06:00
parent 92f570294a
commit 56c51378b8
10 changed files with 464 additions and 289 deletions

View File

@@ -101,8 +101,13 @@ class _EtaNotifier extends AsyncNotifier<_EtaResult> {
}
Future<void> refresh() async {
// Eliminamos el estado "loading" explícito para evitar que la UI parpadee
state = await AsyncValue.guard(_fetch);
try {
final newData = await _fetch();
state = AsyncValue.data(newData);
} catch (e) {
// HACKATHON: Si hay un micro-corte (backend reiniciando), conservamos los datos previos
if (!state.hasValue) state = const AsyncValue.loading();
}
}
Future<_EtaResult> _fetch() async {
@@ -219,10 +224,8 @@ class _EtaScreenState extends ConsumerState<EtaScreen>
),
body: etaAsync.when(
loading: () => const _EtaLoading(),
error: (e, _) => _EtaError(
error: e.toString(),
onRetry: () => ref.read(etaProvider.notifier).refresh(),
),
error: (e, _) =>
const _EtaLoading(), // Si hay error, mostramos carga infinita hasta que el backend despierte
data: (result) => result.hasAddress
? _EtaContent(result: result)
: _NoAddressState(onAdd: () => context.go('/addresses/new')),