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:
co-authored by
Neevash Ramdial
parent
c86652dcfc
commit
bd6bb66279
@@ -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);
|
||||
}
|
||||
Reference in New Issue
Block a user