Приложение на флаторе, настройки
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'chat_event.dart';
|
||||
import 'chat_state.dart';
|
||||
|
||||
class ChatBloc extends Bloc<ChatEvent, ChatState> {
|
||||
ChatBloc() : super(const ChatState.initial()) {
|
||||
on<ChatEventStarted>(_onStarted);
|
||||
on<ChatEventChatsLoaded>(_onChatsLoaded);
|
||||
on<ChatEventChatSelected>(_onChatSelected);
|
||||
on<ChatEventMessagesRequested>(_onMessagesRequested);
|
||||
on<ChatEventMessageSent>(_onMessageSent);
|
||||
}
|
||||
|
||||
Future<void> _onStarted(ChatEventStarted event, emit) async {
|
||||
emit(const ChatState.loading());
|
||||
emit(const ChatState.chatsLoaded([]));
|
||||
}
|
||||
|
||||
Future<void> _onChatsLoaded(ChatEventChatsLoaded event, emit) async {}
|
||||
Future<void> _onChatSelected(ChatEventChatSelected event, emit) async {}
|
||||
Future<void> _onMessagesRequested(ChatEventMessagesRequested event, emit) async {}
|
||||
Future<void> _onMessageSent(ChatEventMessageSent event, emit) async {}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
import 'package:freezed_annotation/freezed_annotation.dart';
|
||||
|
||||
part 'chat_event.freezed.dart';
|
||||
|
||||
@freezed
|
||||
class ChatEvent with _$ChatEvent {
|
||||
const factory ChatEvent.started() = ChatEventStarted;
|
||||
const factory ChatEvent.chatsLoaded() = ChatEventChatsLoaded;
|
||||
const factory ChatEvent.chatSelected(String chatId) = ChatEventChatSelected;
|
||||
const factory ChatEvent.messagesRequested(String chatId, {String? lastMessageId}) = ChatEventMessagesRequested;
|
||||
const factory ChatEvent.messageSent(String chatId, String content) = ChatEventMessageSent;
|
||||
const factory ChatEvent.messageRead(String chatId, String messageId) = ChatEventMessageRead;
|
||||
const factory ChatEvent.chatCreated(String title, List<String> participantIds) = ChatEventChatCreated;
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,14 @@
|
||||
import 'package:freezed_annotation/freezed_annotation.dart';
|
||||
|
||||
part 'chat_state.freezed.dart';
|
||||
|
||||
@freezed
|
||||
class ChatState with _$ChatState {
|
||||
const factory ChatState.initial() = ChatInitial;
|
||||
const factory ChatState.loading() = ChatLoading;
|
||||
const factory ChatState.chatsLoaded(List<dynamic> chats) = _ChatsLoaded;
|
||||
const factory ChatState.chatSelected(String chat, List<dynamic> messages) = _ChatSelected;
|
||||
const factory ChatState.messagesLoaded(List<dynamic> messages) = _MessagesLoaded;
|
||||
const factory ChatState.messageSent() = _MessageSent;
|
||||
const factory ChatState.error(String message) = ChatError;
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user