import 'package:go_router/go_router.dart'; import 'package:together_mobile/models/init_get_it.dart'; import 'package:together_mobile/models/route_state_model.dart'; import 'package:together_mobile/router/router_key.dart'; import 'package:together_mobile/screens/chat/chat_screen.dart'; import 'package:together_mobile/screens/message/friend_message_screen.dart'; import 'package:together_mobile/screens/message/group_chat_message_screen.dart'; import 'package:together_mobile/screens/message/image_view_screen/image_view_screen.dart'; final chatRouter = 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.queryParameters['type']!); if (type == 0) { return FriendMessageScreen( friendId: state.queryParameters['friendId']!, ); } else { return GroupChatMessageScreen( groupChatId: state.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, ); }, ), ], ), ], );