Stream Chatty added as example (#21)

* app updated

* readme updated

* rename base folder

* update chatty's readme

Co-authored-by: Neevash Ramdial <[email protected]>
This commit is contained in:
Diego Velásquez López
2021-03-10 14:53:20 -04:00
committed by GitHub
co-authored by Neevash Ramdial
parent c86652dcfc
commit bd6bb66279
111 changed files with 3806 additions and 0 deletions
@@ -0,0 +1,38 @@
import 'package:stream_chatter/data/stream_api_repository.dart';
import 'package:stream_chatter/domain/models/chat_user.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:stream_chat_flutter/stream_chat_flutter.dart';
class ChatUserState {
const ChatUserState(this.chatUser, {this.selected = false});
final ChatUser chatUser;
final bool selected;
}
class FriendsSelectionCubit extends Cubit<List<ChatUserState>> {
FriendsSelectionCubit(this._streamApiRepository) : super([]);
final StreamApiRepository _streamApiRepository;
List<ChatUserState> get selectedUsers => state.where((element) => element.selected).toList();
Future<void> init() async {
final chatUsers = (await _streamApiRepository.getChatUsers()).map((e) => ChatUserState(e)).toList();
emit(chatUsers);
}
void selectUser(ChatUserState chatUser) {
final index = state.indexWhere((element) => element.chatUser.id == chatUser.chatUser.id);
state[index] = ChatUserState(state[index].chatUser, selected: !chatUser.selected);
emit(List<ChatUserState>.from(state));
}
Future<Channel> createFriendChannel(ChatUserState chatUserState) async {
return await _streamApiRepository.createSimpleChat(chatUserState.chatUser.id);
}
}
class FriendsGroupCubit extends Cubit<bool> {
FriendsGroupCubit() : super(false);
void changeToGroup() => emit(!state);
}