26 lines
731 B
Dart
26 lines
731 B
Dart
import 'package:hydrated_bloc/hydrated_bloc.dart';
|
|
|
|
import '../repository/repository.dart';
|
|
import 'loadable_state.dart';
|
|
|
|
sealed class LoadableHydratedBlocEvent {}
|
|
class DataRecieved extends LoadableHydratedBlocEvent {}
|
|
|
|
abstract class LoadableHydratedBloc<TEvent, TState> extends HydratedBloc<TEvent, LoadableState<TState>> {
|
|
LoadableHydratedBloc() : super(const LoadableState()) {
|
|
repository().load();
|
|
|
|
}
|
|
|
|
Repository repository();
|
|
|
|
|
|
@override
|
|
fromJson(Map<String, dynamic> json) => LoadableState(isLoading: true, data: fromStorage(json));
|
|
@override
|
|
Map<String, dynamic>? toJson(state) => state.data.toJson();
|
|
|
|
TState fromStorage(Map<String, dynamic> json);
|
|
Map<String, dynamic>? toStorage(TState state);
|
|
}
|