// ignore_for_file: constant_identifier_names import 'package:stream_chat_flutter/stream_chat_flutter.dart'; /// Application routes abstract class Routes { static const RouteConfig CHOOSE_USER = RouteConfig(name: 'choose_user', path: '/users'); static const RouteConfig ADVANCED_OPTIONS = RouteConfig(name: 'advanced_options', path: '/options'); static const ChannelRouteConfig CHANNEL_PAGE = ChannelRouteConfig(name: 'channel_page', path: 'channel/:cid'); static const RouteConfig NEW_CHAT = RouteConfig(name: 'new_chat', path: '/new_chat'); static const RouteConfig NEW_GROUP_CHAT = RouteConfig(name: 'new_group_chat', path: '/new_group_chat'); static const RouteConfig NEW_GROUP_CHAT_DETAILS = RouteConfig( name: 'new_group_chat_details', path: '/new_group_chat_details'); static const ChannelRouteConfig CHAT_INFO_SCREEN = ChannelRouteConfig(name: 'chat_info_screen', path: 'chat_info_screen'); static const ChannelRouteConfig GROUP_INFO_SCREEN = ChannelRouteConfig(name: 'group_info_screen', path: 'group_info_screen'); static const RouteConfig CHANNEL_LIST_PAGE = RouteConfig(name: 'channel_list_page', path: '/channels'); } class RouteConfig { final String name; final String path; const RouteConfig({required this.name, required this.path}); } class ChannelRouteConfig extends RouteConfig { const ChannelRouteConfig({required super.name, required super.path}); Map params(Channel channel) => {'cid': channel.cid!}; Map queryParams(Message message) => { 'mid': message.id, if (message.parentId != null) 'pid': message.parentId! }; }