diff --git a/lib/features/agents/presentation/providers/agent_detail_provider.dart b/lib/features/agents/presentation/providers/agent_detail_provider.dart index 3aece0e..d829753 100644 --- a/lib/features/agents/presentation/providers/agent_detail_provider.dart +++ b/lib/features/agents/presentation/providers/agent_detail_provider.dart @@ -292,6 +292,26 @@ class AgentDetailState { return '${'*' * (digits.length - 4)}${digits.substring(digits.length - 4)}'; } + // ── Dynamic labels (fieldName from backend, with fallback) ── + + String _labelForSlug(String slug, String fallback) { + for (final fv in fieldValues) { + if (fv.fieldSlug == slug && fv.fieldName.isNotEmpty) { + return fv.fieldName; + } + } + return fallback; + } + + String get availabilityLabel => + _labelForSlug('availability', 'Availability'); + + String get workEnvironmentLabel => + _labelForSlug('preferred_work_environment', 'Preferred Work Environment'); + + String get bestExperienceLabel => + _labelForSlug('best_experience', 'Best Experience'); + // ── Availability ── String get availabilityType { diff --git a/lib/features/agents/presentation/screens/agent_detail_screen.dart b/lib/features/agents/presentation/screens/agent_detail_screen.dart index 12c6c8a..516b65f 100644 --- a/lib/features/agents/presentation/screens/agent_detail_screen.dart +++ b/lib/features/agents/presentation/screens/agent_detail_screen.dart @@ -999,7 +999,7 @@ class _AgentDetailScreenState extends ConsumerState { // Availability card (always show) _buildInfoCard( icon: Icons.access_time_filled, - title: 'Availability', + title: state.availabilityLabel, subtitle: state.availabilityType.isNotEmpty ? state.availabilityType : 'Not specified', @@ -1012,7 +1012,7 @@ class _AgentDetailScreenState extends ConsumerState { // Work environment (always show) _buildInfoCard( icon: Icons.landscape_outlined, - title: 'Work Environment', + title: state.workEnvironmentLabel, subtitle: '', description: workEnv.isNotEmpty ? workEnv : 'Not specified', isEmpty: workEnv.isEmpty, @@ -1021,7 +1021,7 @@ class _AgentDetailScreenState extends ConsumerState { // Best experience (always show) _buildInfoCard( icon: Icons.star_rounded, - title: 'Best Experience', + title: state.bestExperienceLabel, subtitle: '', description: bestExp.isNotEmpty ? bestExp : 'Not specified', isEmpty: bestExp.isEmpty, diff --git a/lib/features/agents/presentation/screens/agent_home_screen.dart b/lib/features/agents/presentation/screens/agent_home_screen.dart index cd4fd50..de3f3ed 100644 --- a/lib/features/agents/presentation/screens/agent_home_screen.dart +++ b/lib/features/agents/presentation/screens/agent_home_screen.dart @@ -1052,7 +1052,7 @@ class _AgentHomeContentState extends ConsumerState<_AgentHomeContent> { // Availability card (with title — matches web) _buildInfoCard( icon: Icons.access_time_filled, - title: 'Availability', + title: state.availabilityLabel, subtitle: state.availabilityType.isNotEmpty ? state.availabilityType : 'Not specified', @@ -1062,18 +1062,18 @@ class _AgentHomeContentState extends ConsumerState<_AgentHomeContent> { isEmpty: state.availabilityType.isEmpty, ), const SizedBox(height: 16), - // Work environment (no title — matches web) + // Work environment _buildInfoCard( icon: Icons.landscape_outlined, - title: '', + title: state.workEnvironmentLabel, subtitle: '', description: workEnv, ), const SizedBox(height: 16), - // Testimonial preview (no title — matches web) + // Testimonial preview _buildInfoCard( icon: Icons.star_rounded, - title: '', + title: state.bestExperienceLabel, subtitle: '', description: testimonialText.isNotEmpty ? '\u201C$testimonialText\u201D'