feat(diary) Comment layouts and controllers

This commit is contained in:
2024-02-14 10:59:15 +03:00
parent 5118697a02
commit f25bbfecbf
3 changed files with 165 additions and 190 deletions

View File

@@ -20,7 +20,7 @@ class DiaryEditBloc extends Bloc<DiaryEditEvent, DiaryEditState> {
DiaryEditInitialEvent event,
Emitter<DiaryEditState> emit,
) async {
try {
/*try {
/*final box = await Hive.openBox('token');
final token = box.get('token');*/
final token =
@@ -36,28 +36,30 @@ class DiaryEditBloc extends Bloc<DiaryEditEvent, DiaryEditState> {
final data = jsonDecode(response.body);
// Проверка наличия ключевых полей в JSON
if (data is Map<String, dynamic> && data.containsKey('id')) {
// Все ключевые поля присутствуют, продолжаем обработку
if (state is DiaryEditLoadedState) {
// Если текущее состояние уже загружено, обновляем его
var currentState = state as DiaryEditLoadedState;
// Обновляем значения контроллеров только если они уже были созданы
print(currentState.wakeupController);
emit((currentState).copyWith(
wakeupExpanded: currentState.wakeupExpanded,
retireExpanded: currentState.retireExpanded,
wakeupController: currentState.wakeupController,
retireController: currentState.retireController,
));
} else {
// Если текущее состояние - начальное, создаем новое загруженное состояние
emit(DiaryEditLoadedState(
wakeupExpanded: true,
retireExpanded: false,
wakeupController: TimeOfDay.now(),
retireController: TimeOfDay.now(),
));
}
} else {
// Все ключевые поля присутствуют, продолжаем обработку*/
if (state is DiaryEditLoadedState) {
// Если текущее состояние уже загружено, обновляем его
var currentState = state as DiaryEditLoadedState;
// Обновляем значения контроллеров только если они уже были созданы
print(currentState.wakeupController);
emit((currentState).copyWith(
wakeupExpanded: currentState.wakeupExpanded,
moodExpanded: currentState.moodExpanded,
wakeupController: currentState.wakeupController,
retireController: currentState.retireController,
commentController: currentState.commentController,
));
} else {
// Если текущее состояние - начальное, создаем новое загруженное состояние
emit(DiaryEditLoadedState(
wakeupExpanded: true,
moodExpanded: true,
wakeupController: TimeOfDay.now(),
retireController: TimeOfDay.now(),
commentController: TextEditingController(),
));
}
/*} else {
// Один или несколько ключевых полей отсутствуют, обрабатываем ошибку
emit(
DiaryEditErrorState('Некоторые необходимые данные отсутствуют.'));
@@ -69,7 +71,7 @@ class DiaryEditBloc extends Bloc<DiaryEditEvent, DiaryEditState> {
} catch (e) {
// Ошибка при декодировании JSON или другая ошибка выполнения
emit(DiaryEditErrorState('Ошибка при получении данных профиля: $e'));
}
}*/
}
/*_expandWakeup(

View File

@@ -22,15 +22,17 @@ class DiaryEditLoadedState extends DiaryEditState {
{this.diaryEditModelObj,
this.wakeupController,
this.retireController,
this.commentController,
required this.wakeupExpanded,
required this.retireExpanded})
required this.moodExpanded})
: super(diaryEditModelObj: null);
DiaryEditModel? diaryEditModelObj;
TimeOfDay? wakeupController;
TimeOfDay? retireController;
TextEditingController? commentController;
bool wakeupExpanded;
bool retireExpanded;
bool moodExpanded;
@override
List<Object?> get props =>
[diaryEditModelObj, wakeupController, retireController];
@@ -38,15 +40,17 @@ class DiaryEditLoadedState extends DiaryEditState {
DiaryEditModel? diaryEditModelObj,
TimeOfDay? wakeupController,
TimeOfDay? retireController,
TextEditingController? commentController,
required bool wakeupExpanded,
required bool retireExpanded,
required bool moodExpanded,
}) {
return DiaryEditLoadedState(
diaryEditModelObj: diaryEditModelObj ?? this.diaryEditModelObj,
wakeupController: wakeupController ?? this.wakeupController,
retireController: retireController ?? this.retireController,
commentController: commentController ?? this.commentController,
wakeupExpanded: wakeupExpanded,
retireExpanded: retireExpanded);
moodExpanded: moodExpanded);
}
}