import 'package:go_router/go_router.dart'; import '/models/init_get_it.dart'; import '/models/route_state_model.dart'; import '/router/router_key.dart'; import '/screens/chat/chat_screen.dart'; import '/screens/message/friend_message_screen.dart'; import '/screens/message/group_chat_message_screen.dart'; import '/screens/message/image_view_screen/image_view_screen.dart'; final chatRoute = GoRoute( path: '/chat', name: 'Chat', builder: (context, state) { getIt.get().changeRoute('Chat'); return ChatScreen(); }, routes: [ GoRoute( path: 'message', name: 'Message', parentNavigatorKey: rootNavigatorKey, builder: (context, state) { int type = int.parse(state.uri.queryParameters['type']!); if (type == 0) { return FriendMessageScreen( friendId: state.uri.queryParameters['friendId']!, ); } else { return GroupChatMessageScreen( groupChatId: state.uri.queryParameters['groupChatId']!, ); } }, routes: [ GoRoute( path: 'image_view', name: 'ImageView', parentNavigatorKey: rootNavigatorKey, builder: (context, state) { Map extra = state.extra as Map; return ImageViewScreen( attachments: extra['attachments']! as List, initialIndex: extra['index']! as int, ); }, ), ], ), ], );