refactor: update agent location display logic to prioritize state over city across UI and models
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user