feat: Implement About Us and Agent Home screens, update routing, and add new assets and plugins.

This commit is contained in:
pradeepkumar
2026-03-08 12:15:15 +05:30
parent 219acfc013
commit b4d22df8ba
17 changed files with 2795 additions and 112 deletions

View File

@@ -11,7 +11,9 @@ import 'package:real_estate_mobile/features/home/presentation/screens/home_scree
import 'package:real_estate_mobile/features/messaging/presentation/screens/conversations_screen.dart';
import 'package:real_estate_mobile/features/messaging/presentation/screens/chat_screen.dart';
import 'package:real_estate_mobile/features/messaging/presentation/screens/messaging_shell.dart';
import 'package:real_estate_mobile/features/agents/presentation/screens/agent_home_screen.dart';
import 'package:real_estate_mobile/features/contact/presentation/screens/contact_screen.dart';
import 'package:real_estate_mobile/features/about/presentation/screens/about_screen.dart';
import 'package:real_estate_mobile/features/profile/presentation/screens/profile_settings_screen.dart';
final routerProvider = Provider<GoRouter>((ref) {
@@ -26,7 +28,7 @@ final routerProvider = Provider<GoRouter>((ref) {
});
// Public routes accessible without authentication (matching web middleware)
const publicRoutes = ['/home', '/agents/search', '/agents/detail', '/faq', '/contact'];
const publicRoutes = ['/home', '/agents/search', '/agents/detail', '/faq', '/contact', '/about'];
const authRoutes = ['/login', '/signup'];
return GoRouter(
@@ -68,7 +70,7 @@ final routerProvider = Provider<GoRouter>((ref) {
),
GoRoute(
path: '/home',
builder: (context, state) => const HomeScreen(),
builder: (context, state) => const _HomeRouteWrapper(),
),
GoRoute(
path: '/agents/search',
@@ -108,6 +110,10 @@ final routerProvider = Provider<GoRouter>((ref) {
path: '/contact',
builder: (context, state) => const ContactScreen(),
),
GoRoute(
path: '/about',
builder: (context, state) => const AboutScreen(),
),
GoRoute(
path: '/profile',
builder: (context, state) => const ProfileSettingsScreen(),
@@ -116,6 +122,21 @@ final routerProvider = Provider<GoRouter>((ref) {
);
});
/// Reactively switches between HomeScreen and AgentHomeScreen based on auth.
class _HomeRouteWrapper extends ConsumerWidget {
const _HomeRouteWrapper();
@override
Widget build(BuildContext context, WidgetRef ref) {
final authState = ref.watch(authProvider);
if (authState.status == AuthStatus.authenticated &&
authState.user?.role == 'AGENT') {
return const AgentHomeScreen();
}
return const HomeScreen();
}
}
/// Notifier that triggers GoRouter refresh when auth state changes.
class _AuthRefreshNotifier extends ChangeNotifier {
void notify() {