navigateToStartConversation method

void navigateToStartConversation({
  1. BuildContext? context,
})

Implementation

void navigateToStartConversation({BuildContext? context}) {
  UsersConfiguration defaultUsersConfiguration = UsersConfiguration(
      usersRequestBuilder:
          RequestBuilderConstants.getDefaultUsersRequestBuilder()
            ..hideBlockedUsers = true);

  GroupsConfiguration defaultGroupsConfiguration = GroupsConfiguration(
      groupsRequestBuilder:
          RequestBuilderConstants.getDefaultGroupsRequestBuilder()
            ..joinedOnly = true);

  Navigator.push(
    context ?? this.context,
    MaterialPageRoute(
      builder: (context) => CometChatContacts(
        onItemTap: startConversationConfiguration?.onItemTap ??
            (BuildContext context, user, group) {
              if (user != null || group != null) {
                navigateToMessagesScreen(
                    user: user, group: group, pushReplacement: true);
              }
            },
        onClose: startConversationConfiguration?.onClose ??
            () {
              Navigator.of(context).pop();
            },
        closeIcon: startConversationConfiguration?.closeIcon,
        title: startConversationConfiguration?.title,
        usersConfiguration: startConversationConfiguration?.usersConfiguration
                ?.merge(defaultUsersConfiguration) ??
            defaultUsersConfiguration,
        theme: startConversationConfiguration?.theme ?? theme,
        groupsConfiguration: startConversationConfiguration
                ?.groupsConfiguration
                ?.merge(defaultGroupsConfiguration) ??
            defaultGroupsConfiguration,
        groupsTabTitle: startConversationConfiguration?.groupsTabTitle ??
            Translations.of(context).groups,
        contactsStyle: startConversationConfiguration?.contactsStyle ??
            const ContactsStyle(),
        usersTabTitle: startConversationConfiguration?.usersTabTitle ??
            Translations.of(context).users,
        hideSubmitIcon:
            startConversationConfiguration?.hideSubmitIcon ?? true,
        onSubmitIconTap: startConversationConfiguration?.onSubmitIconTap,
        selectionLimit: startConversationConfiguration?.selectionLimit,
        selectionMode: startConversationConfiguration?.selectionMode ??
            SelectionMode.none,
        submitIcon: startConversationConfiguration?.submitIcon,
        tabVisibility: startConversationConfiguration?.tabVisibility ??
            TabVisibility.usersAndGroups,
      ),
    ),
  );
}