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);
}