feat: Implement About Us and Agent Home screens, update routing, and add new assets and plugins.
This commit is contained in:
@@ -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() {
|
||||
|
||||
Reference in New Issue
Block a user