simulacion de estados y flujo de notificacion, modificacion de estilos en todas las vistas

This commit is contained in:
shinra32
2026-05-23 07:08:49 -06:00
parent ca076607c7
commit 92f570294a
43 changed files with 4335 additions and 2035 deletions

View File

@@ -123,6 +123,12 @@ class _EtaNotifier extends AsyncNotifier<_EtaResult> {
if (items.isEmpty) return const _EtaResult.noAddress();
final addressId = items.first['id'] as String;
final routeId = items.first['route_id'] as String?;
// Publica el routeId activo para que `_FcmStatusBadge` deje de mostrar
// "suscribiendo..." y refleje el topic real al que está suscrito el cliente.
Future.microtask(() {
ref.read(activeRouteIdProvider.notifier).set(routeId);
});
final etaResp = await dio.get<dynamic>(
'/eta',
queryParameters: {'address_id': addressId},
@@ -149,6 +155,10 @@ final etaProvider = AsyncNotifierProvider<_EtaNotifier, _EtaResult>(
class ActiveRouteIdNotifier extends Notifier<String?> {
@override
String? build() => null;
void set(String? value) {
if (state != value) state = value;
}
}
final activeRouteIdProvider = NotifierProvider<ActiveRouteIdNotifier, String?>(
@@ -312,7 +322,11 @@ class _EcoChatBanner extends StatelessWidget {
color: Colors.white24,
shape: BoxShape.circle,
),
child: const Icon(Icons.pets, color: Colors.white, size: 28),
child: const Icon(
Icons.delete_outline,
color: Colors.white,
size: 28,
),
),
const SizedBox(width: 16),
const Expanded(
@@ -408,14 +422,14 @@ class _EtaHeroCard extends StatelessWidget {
Color _bgColor(BuildContext context) {
final cs = Theme.of(context).colorScheme;
if (result.isCompleted) return cs.surfaceContainerHighest;
if (result.isNearby) return const Color(0xFFFFF8E1); // amber-50
return const Color(0xFFE1F5EE); // teal-50
if (result.isNearby) return const Color(0xFFF5EDD8); // beige dorado claro
return const Color(0xFFE8D5DB); // rosa claro institucional
}
Color _accentColor(BuildContext context) {
if (result.isCompleted) return Theme.of(context).colorScheme.outline;
if (result.isNearby) return const Color(0xFFBA7517); // amber-400
return const Color(0xFF1D9E75); // teal-400
if (result.isNearby) return const Color(0xFFC8A36A); // beige dorado
return const Color(0xFF9B1B4A); // vino principal
}
@override
@@ -693,7 +707,7 @@ class _FcmStatusBadge extends ConsumerWidget {
width: 8,
height: 8,
decoration: const BoxDecoration(
color: Color(0xFF1D9E75),
color: Color(0xFF1E7A46),
shape: BoxShape.circle,
),
),