From 8a982bdf3dad3b5bbdb3b89852ad9371a80247b3 Mon Sep 17 00:00:00 2001 From: pradeepkumar Date: Tue, 31 Mar 2026 19:36:30 +0530 Subject: [PATCH] refactor: update navigation to use push/pop and add conditional dashboard redirection for agents --- .../presentation/screens/about_screen.dart | 4 +++- .../presentation/screens/contact_screen.dart | 6 ++++-- .../presentation/screens/chat_screen.dart | 17 ++++++++++++++--- .../screens/conversations_screen.dart | 2 +- 4 files changed, 22 insertions(+), 7 deletions(-) diff --git a/lib/features/about/presentation/screens/about_screen.dart b/lib/features/about/presentation/screens/about_screen.dart index d3388c4..c9b7853 100644 --- a/lib/features/about/presentation/screens/about_screen.dart +++ b/lib/features/about/presentation/screens/about_screen.dart @@ -847,7 +847,9 @@ class AboutScreen extends ConsumerWidget { ), alignment: Alignment.center, child: Text( - cta.buttonText, + (ref.read(authProvider).user?.role == 'AGENT') + ? 'Go to Dashboard' + : cta.buttonText, style: const TextStyle( fontFamily: 'Fractul', fontSize: 16, diff --git a/lib/features/contact/presentation/screens/contact_screen.dart b/lib/features/contact/presentation/screens/contact_screen.dart index d76b27e..09a5320 100644 --- a/lib/features/contact/presentation/screens/contact_screen.dart +++ b/lib/features/contact/presentation/screens/contact_screen.dart @@ -613,8 +613,10 @@ class _ContactScreenState extends State { child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ - const Text( - 'Start Your Search', + Text( + (ref.read(authProvider).user?.role == 'AGENT') + ? 'Go to Dashboard' + : 'Start Your Search', style: TextStyle( fontFamily: 'Fractul', fontSize: 16, diff --git a/lib/features/messaging/presentation/screens/chat_screen.dart b/lib/features/messaging/presentation/screens/chat_screen.dart index 3d9ef37..770bf97 100644 --- a/lib/features/messaging/presentation/screens/chat_screen.dart +++ b/lib/features/messaging/presentation/screens/chat_screen.dart @@ -193,7 +193,13 @@ class _ChatScreenState extends ConsumerState onConfirm: () async { final notifier = ref.read(messagingProvider.notifier); await notifier.deleteConversation(widget.conversationId); - if (mounted) context.go('/messages'); + if (mounted) { + if (Navigator.of(context).canPop()) { + Navigator.of(context).pop(); + } else { + context.go('/messages'); + } + } }, isDanger: true, ); @@ -266,8 +272,13 @@ class _ChatScreenState extends ConsumerState } void _handleBack() { - ref.read(messagingProvider.notifier).setActiveConversation(null); - context.go('/messages'); + final notifier = ref.read(messagingProvider.notifier); + Future.microtask(() => notifier.setActiveConversation(null)); + if (Navigator.of(context).canPop()) { + Navigator.of(context).pop(); + } else { + context.go('/messages'); + } } // ============================================================ diff --git a/lib/features/messaging/presentation/screens/conversations_screen.dart b/lib/features/messaging/presentation/screens/conversations_screen.dart index 96dd038..c7e365b 100644 --- a/lib/features/messaging/presentation/screens/conversations_screen.dart +++ b/lib/features/messaging/presentation/screens/conversations_screen.dart @@ -434,7 +434,7 @@ class _ConversationsScreenState extends ConsumerState { return _ConversationTile( conversation: filtered[index], onTap: () => - context.go('/messages/chat/${filtered[index].id}'), + context.push('/messages/chat/${filtered[index].id}'), ); }, ),