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 extends HydratedBloc> { LoadableHydratedBloc() : super(const LoadableState()) { repository().load(); } Repository repository(); @override fromJson(Map json) => LoadableState(isLoading: true, data: fromStorage(json)); @override Map? toJson(state) => state.data.toJson(); TState fromStorage(Map json); Map? toStorage(TState state); }