forked from eatvio/eatvio_app
refactor(diary): Diary cubit
This commit is contained in:
21
lib/features/diary/presentation/bloc/diary_cubit.dart
Normal file
21
lib/features/diary/presentation/bloc/diary_cubit.dart
Normal file
@@ -0,0 +1,21 @@
|
||||
import 'package:eatvio_app/core/app_export.dart';
|
||||
import 'package:eatvio_app/features/diary/presentation/bloc/diary_state.dart';
|
||||
import 'package:eatvio_app/features/diary/repositories/diary_repository.dart';
|
||||
|
||||
class DiaryCubit extends Cubit<DiaryState> {
|
||||
final DiaryRepository blogPostRepository;
|
||||
|
||||
DiaryCubit({required this.blogPostRepository})
|
||||
: super(const DiaryState.loading());
|
||||
|
||||
loadDiary(String blogPostID) async {
|
||||
emit(const DiaryState.loading());
|
||||
try {
|
||||
final blogPost = await blogPostRepository.getDiary(blogPostID);
|
||||
emit(DiaryState.loaded(blogPost: blogPost));
|
||||
} catch (e) {
|
||||
emit(DiaryState.error(errorMessage: e.toString()));
|
||||
print(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
19
lib/features/diary/presentation/bloc/diary_state.dart
Normal file
19
lib/features/diary/presentation/bloc/diary_state.dart
Normal file
@@ -0,0 +1,19 @@
|
||||
import 'package:eatvio_app/features/diary/models/diary_model.dart';
|
||||
import 'package:freezed_annotation/freezed_annotation.dart';
|
||||
|
||||
part 'diary_state.freezed.dart';
|
||||
|
||||
@freezed
|
||||
abstract class DiaryState with _$DiaryState {
|
||||
const factory DiaryState() = _DiaryState;
|
||||
|
||||
const factory DiaryState.loading() = DiaryStateLoading;
|
||||
|
||||
const factory DiaryState.loaded({
|
||||
required DiaryModel blogPost,
|
||||
}) = DiaryStateLoaded;
|
||||
|
||||
const factory DiaryState.error({
|
||||
required String errorMessage,
|
||||
}) = DiaryStateError;
|
||||
}
|
||||
1298
lib/features/diary/presentation/pages/diary_screen.dart
Normal file
1298
lib/features/diary/presentation/pages/diary_screen.dart
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user