feat: Implement messaging functionality with conversation and chat screens, and enhance agent detail views.

This commit is contained in:
pradeepkumar
2026-03-08 00:41:44 +05:30
parent bdb7b04fbf
commit bba9cd3936
23 changed files with 4402 additions and 3 deletions

View File

@@ -4,9 +4,12 @@ import 'package:go_router/go_router.dart';
import 'package:real_estate_mobile/features/auth/presentation/providers/auth_provider.dart';
import 'package:real_estate_mobile/features/auth/presentation/screens/login_screen.dart';
import 'package:real_estate_mobile/features/auth/presentation/screens/signup_screen.dart';
import 'package:real_estate_mobile/features/agents/presentation/screens/agent_detail_screen.dart';
import 'package:real_estate_mobile/features/agents/presentation/screens/agent_search_screen.dart';
import 'package:real_estate_mobile/features/faq/presentation/screens/faq_screen.dart';
import 'package:real_estate_mobile/features/home/presentation/screens/home_screen.dart';
import 'package:real_estate_mobile/features/messaging/presentation/screens/conversations_screen.dart';
import 'package:real_estate_mobile/features/messaging/presentation/screens/chat_screen.dart';
final routerProvider = Provider<GoRouter>((ref) {
final authRefreshNotifier = _AuthRefreshNotifier();
@@ -20,7 +23,7 @@ final routerProvider = Provider<GoRouter>((ref) {
});
// Public routes accessible without authentication (matching web middleware)
const publicRoutes = ['/home', '/agents/search', '/faq'];
const publicRoutes = ['/home', '/agents/search', '/agents/detail', '/faq'];
const authRoutes = ['/login', '/signup'];
return GoRouter(
@@ -71,6 +74,24 @@ final routerProvider = Provider<GoRouter>((ref) {
return AgentSearchScreen(initialQuery: query);
},
),
GoRoute(
path: '/agents/detail/:id',
builder: (context, state) {
final id = state.pathParameters['id']!;
return AgentDetailScreen(agentId: id);
},
),
GoRoute(
path: '/messages',
builder: (context, state) => const ConversationsScreen(),
),
GoRoute(
path: '/messages/chat/:id',
builder: (context, state) {
final id = state.pathParameters['id']!;
return ChatScreen(conversationId: id);
},
),
GoRoute(
path: '/faq',
builder: (context, state) => const FaqScreen(),