diff --git a/lib/features/agents/presentation/providers/agent_detail_provider.dart b/lib/features/agents/presentation/providers/agent_detail_provider.dart index 6a4c3a7..3aece0e 100644 --- a/lib/features/agents/presentation/providers/agent_detail_provider.dart +++ b/lib/features/agents/presentation/providers/agent_detail_provider.dart @@ -181,7 +181,7 @@ class AgentDetailState { fvStates = _extractAllValuesAsList(fv); } } - if (fvStates != null) parts.addAll(fvStates); + if (fvStates != null) parts.addAll(fvStates.map(_normalizeStateCode)); if (fvCities != null) { for (final c in fvCities) { if (!parts.any((p) => p.toLowerCase() == c.toLowerCase())) { @@ -193,7 +193,7 @@ class AgentDetailState { // 2. Fallback: agent model direct state/city if (parts.isEmpty && agent != null) { if (agent!.state != null && agent!.state!.isNotEmpty) { - parts.add(agent!.state!); + parts.add(_normalizeStateCode(agent!.state!)); } if (agent!.city != null && agent!.city!.isNotEmpty) { parts.add(agent!.city!); @@ -211,6 +211,13 @@ class AgentDetailState { return parts; } + /// Uppercase 2-letter US state codes (e.g. "co" → "CO"); leave full state names alone. + String _normalizeStateCode(String raw) { + final trimmed = raw.trim(); + if (trimmed.length == 2) return trimmed.toUpperCase(); + return trimmed; + } + /// Combined location text for single-line display. String get locationText { final parts = locationParts;