refactor: update agent location display logic to prioritize state over city across UI and models

This commit is contained in:
pradeepkumar
2026-04-11 22:52:13 +05:30
parent 9c63ee70d9
commit 1ef02383a6
4 changed files with 57 additions and 36 deletions

View File

@@ -165,7 +165,8 @@ class AgentDetailState {
// ── Location (from fieldValues, matching web profileDataMapper) ──
/// All location parts as individual items (for "+N more" display).
/// Sources: detail fieldValues city/state arrays → agent model → serviceAreas
/// Sources: detail fieldValues state/city arrays → agent model → serviceAreas
/// Order: state first, then city.
List<String> get locationParts {
final parts = <String>[];
@@ -180,23 +181,23 @@ class AgentDetailState {
fvStates = _extractAllValuesAsList(fv);
}
}
if (fvCities != null) parts.addAll(fvCities);
if (fvStates != null) {
for (final s in fvStates) {
if (!parts.any((p) => p.toLowerCase() == s.toLowerCase())) {
parts.add(s);
if (fvStates != null) parts.addAll(fvStates);
if (fvCities != null) {
for (final c in fvCities) {
if (!parts.any((p) => p.toLowerCase() == c.toLowerCase())) {
parts.add(c);
}
}
}
// 2. Fallback: agent model direct city/state
// 2. Fallback: agent model direct state/city
if (parts.isEmpty && agent != null) {
if (agent!.city != null && agent!.city!.isNotEmpty) {
parts.add(agent!.city!);
}
if (agent!.state != null && agent!.state!.isNotEmpty) {
parts.add(agent!.state!);
}
if (agent!.city != null && agent!.city!.isNotEmpty) {
parts.add(agent!.city!);
}
}
// 3. Fallback: serviceAreas