repository and data provider concept
This commit is contained in:
@ -1,17 +1,32 @@
|
||||
import '../../../infrastructure/loadableState/loadable_hydrated_bloc.dart';
|
||||
import '../../../infrastructure/repository/repository.dart';
|
||||
import '../../../infrastructure/utilityWidgets/loadableHydratedBloc/loadable_hydrated_bloc.dart';
|
||||
import '../../../infrastructure/utilityWidgets/loadableHydratedBloc/loadable_hydrated_bloc_event.dart';
|
||||
import '../repository/marianum_message_repository.dart';
|
||||
import 'marianum_message_state.dart';
|
||||
|
||||
class MarianumMessageBloc extends LoadableHydratedBloc<void, MarianumMessageState> {
|
||||
MarianumMessageBloc();
|
||||
sealed class MarianumMessageEvent extends LoadableHydratedBlocEvent<MarianumMessageState> {}
|
||||
class MessageEvent extends MarianumMessageEvent {}
|
||||
|
||||
class MarianumMessageBloc extends LoadableHydratedBloc<MarianumMessageEvent, MarianumMessageState, MarianumMessageRepository> {
|
||||
MarianumMessageBloc() {
|
||||
on<MessageEvent>((event, emit) {
|
||||
add(Emit((state) => state.copyWith.messageList(messages: [])));
|
||||
});
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> loadState() async {
|
||||
var messages = await repo.getMessages();
|
||||
add(Emit((state) => state.copyWith(messageList: messages)));
|
||||
}
|
||||
|
||||
@override
|
||||
MarianumMessageRepository repository() => MarianumMessageRepository();
|
||||
|
||||
@override
|
||||
MarianumMessageState fromNothing() => const MarianumMessageState(messageList: MarianumMessageList(base: "", messages: []));
|
||||
|
||||
@override
|
||||
MarianumMessageState fromStorage(Map<String, dynamic> json) => MarianumMessageState.fromJson(json);
|
||||
@override
|
||||
Map<String, dynamic>? toStorage(MarianumMessageState state) => state.toJson();
|
||||
|
||||
@override
|
||||
Repository repository() => MarianumMessageRepository(emit);
|
||||
}
|
||||
|
Reference in New Issue
Block a user