forked from eatvio/eatvio_app
feat(diary) Made an event expanded list display for mood
This commit is contained in:
@@ -16,8 +16,9 @@ part 'diary_edit_state.dart';
|
||||
class DiaryEditBloc extends Bloc<DiaryEditEvent, DiaryEditState> {
|
||||
DiaryEditBloc(DiaryEditState initialState) : super(initialState) {
|
||||
on<DiaryEditInitialEvent>(_onInitialize);
|
||||
on<SatietyEvent>(_changeSatiety);
|
||||
on<ChangeSatiety>(_changeSatiety);
|
||||
on<MoodEvent>(_changeMood);
|
||||
on<ToggleMoodExpandedEvent>(_toggleMood);
|
||||
}
|
||||
|
||||
Future<void> _onInitialize(
|
||||
@@ -94,11 +95,12 @@ class DiaryEditBloc extends Bloc<DiaryEditEvent, DiaryEditState> {
|
||||
}*/
|
||||
|
||||
Future<void> _changeSatiety(
|
||||
SatietyEvent event, Emitter<DiaryEditState> emit) async {
|
||||
ChangeSatiety event, Emitter<DiaryEditState> emit) async {
|
||||
if (state is DiaryEditLoadedState) {
|
||||
var currentState = state as DiaryEditLoadedState;
|
||||
emit(currentState.copyWith(selectedSatiety: event.selectedElement));
|
||||
currentState.selectedSatiety = event.selectedElement;
|
||||
print(currentState.selectedSatiety);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,8 +108,20 @@ class DiaryEditBloc extends Bloc<DiaryEditEvent, DiaryEditState> {
|
||||
MoodEvent event, Emitter<DiaryEditState> emit) async {
|
||||
if (state is DiaryEditLoadedState) {
|
||||
var currentState = state as DiaryEditLoadedState;
|
||||
|
||||
emit(currentState.copyWith(selectedMood: event.selectedElement));
|
||||
currentState.selectedMood = event.selectedElement;
|
||||
}
|
||||
}
|
||||
|
||||
FutureOr<void> _toggleMood(
|
||||
ToggleMoodExpandedEvent event, Emitter<DiaryEditState> emit) {
|
||||
if (state is DiaryEditLoadedState) {
|
||||
var currentState = state as DiaryEditLoadedState;
|
||||
|
||||
emit(currentState.copyWith(moodExpanded: !currentState.moodExpanded));
|
||||
currentState.moodExpanded = !currentState.moodExpanded;
|
||||
print(currentState.moodExpanded);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,8 +15,8 @@ class DiaryEditInitialEvent extends DiaryEditEvent {
|
||||
List<Object?> get props => [];
|
||||
}
|
||||
|
||||
class SatietyEvent extends DiaryEditEvent {
|
||||
SatietyEvent(this.selectedElement);
|
||||
class ChangeSatiety extends DiaryEditEvent {
|
||||
ChangeSatiety(this.selectedElement);
|
||||
final int selectedElement;
|
||||
|
||||
@override
|
||||
@@ -30,4 +30,8 @@ class MoodEvent extends DiaryEditEvent {
|
||||
@override
|
||||
List<Object> get props => [selectedElement];
|
||||
}
|
||||
//class ToggleWakeupExpandedEvent extends DiaryEditEvent {}
|
||||
|
||||
class ToggleMoodExpandedEvent extends DiaryEditEvent {
|
||||
@override
|
||||
List<Object?> get props => [];
|
||||
}
|
||||
|
||||
@@ -83,7 +83,7 @@ class DiaryEditScreen extends StatelessWidget {
|
||||
SizedBox(height: 20.v),
|
||||
_buildMood(context, state),
|
||||
SizedBox(height: 30.v),
|
||||
_buildHeaderColumn(context),
|
||||
_buildNutritionChart(context),
|
||||
SizedBox(height: 30.v),
|
||||
_buildComment(context, state),
|
||||
],
|
||||
@@ -280,56 +280,64 @@ class DiaryEditScreen extends StatelessWidget {
|
||||
style: CustomTextStyles.bodyMediumBlack900,
|
||||
),
|
||||
SizedBox(height: 15.v),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text("😭"),
|
||||
ScaleElement(
|
||||
color: Colors.red,
|
||||
isSelected: state.selectedSatiety == 0,
|
||||
onTap: () {
|
||||
context.read<DiaryEditBloc>().add(SatietyEvent(0));
|
||||
},
|
||||
),
|
||||
ScaleElement(
|
||||
color: Colors.orange,
|
||||
isSelected: state.selectedSatiety == 1,
|
||||
onTap: () {
|
||||
context.read<DiaryEditBloc>().add(SatietyEvent(1));
|
||||
},
|
||||
),
|
||||
ScaleElement(
|
||||
color: Colors.yellow,
|
||||
isSelected: state.selectedSatiety == 2,
|
||||
onTap: () {
|
||||
context.read<DiaryEditBloc>().add(SatietyEvent(2));
|
||||
},
|
||||
),
|
||||
ScaleElement(
|
||||
color: Colors.lime,
|
||||
isSelected: state.selectedSatiety == 3,
|
||||
onTap: () {
|
||||
context.read<DiaryEditBloc>().add(SatietyEvent(3));
|
||||
},
|
||||
),
|
||||
ScaleElement(
|
||||
color: Colors.lightGreen,
|
||||
isSelected: state.selectedSatiety == 4,
|
||||
onTap: () {
|
||||
context.read<DiaryEditBloc>().add(SatietyEvent(4));
|
||||
},
|
||||
),
|
||||
ScaleElement(
|
||||
color: Colors.green,
|
||||
isSelected: state.selectedSatiety == 5,
|
||||
onTap: () {
|
||||
context.read<DiaryEditBloc>().add(SatietyEvent(5));
|
||||
},
|
||||
),
|
||||
Text("😊"),
|
||||
// Остальные элементы шкалы
|
||||
],
|
||||
),
|
||||
BlocBuilder<DiaryEditBloc, DiaryEditState>(
|
||||
builder: (context, state) {
|
||||
if (state is DiaryEditLoadedState) {
|
||||
return Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text("😭"),
|
||||
ScaleElement(
|
||||
color: Colors.red,
|
||||
isSelected: state.selectedSatiety == 0,
|
||||
onTap: () {
|
||||
context.read<DiaryEditBloc>().add(ChangeSatiety(0));
|
||||
},
|
||||
),
|
||||
ScaleElement(
|
||||
color: Colors.orange,
|
||||
isSelected: state.selectedSatiety == 1,
|
||||
onTap: () {
|
||||
context.read<DiaryEditBloc>().add(ChangeSatiety(1));
|
||||
},
|
||||
),
|
||||
ScaleElement(
|
||||
color: Colors.yellow,
|
||||
isSelected: state.selectedSatiety == 2,
|
||||
onTap: () {
|
||||
context.read<DiaryEditBloc>().add(ChangeSatiety(2));
|
||||
},
|
||||
),
|
||||
ScaleElement(
|
||||
color: Colors.lime,
|
||||
isSelected: state.selectedSatiety == 3,
|
||||
onTap: () {
|
||||
context.read<DiaryEditBloc>().add(ChangeSatiety(3));
|
||||
},
|
||||
),
|
||||
ScaleElement(
|
||||
color: Colors.lightGreen,
|
||||
isSelected: state.selectedSatiety == 4,
|
||||
onTap: () {
|
||||
context.read<DiaryEditBloc>().add(ChangeSatiety(4));
|
||||
},
|
||||
),
|
||||
ScaleElement(
|
||||
color: Colors.green,
|
||||
isSelected: state.selectedSatiety == 5,
|
||||
onTap: () {
|
||||
context.read<DiaryEditBloc>().add(ChangeSatiety(5));
|
||||
},
|
||||
),
|
||||
Text("😊"),
|
||||
// Остальные элементы шкалы
|
||||
],
|
||||
);
|
||||
} else {
|
||||
return Container(); // Возвращаем пустой контейнер, если состояние не является DiaryEditLoadedState
|
||||
}
|
||||
},
|
||||
)
|
||||
],
|
||||
),
|
||||
));
|
||||
@@ -387,7 +395,7 @@ class DiaryEditScreen extends StatelessWidget {
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildHeaderColumn(BuildContext context) {
|
||||
Widget _buildNutritionChart(BuildContext context) {
|
||||
return Container(
|
||||
margin: EdgeInsets.symmetric(horizontal: 16.h),
|
||||
padding: EdgeInsets.symmetric(
|
||||
@@ -797,8 +805,8 @@ class DiaryEditScreen extends StatelessWidget {
|
||||
child: Column(children: [
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
/*BlocProvider.of<DiaryEditBloc>(context)
|
||||
.add(ToggleWakeupExpandedEvent());*/
|
||||
BlocProvider.of<DiaryEditBloc>(context)
|
||||
.add(ToggleMoodExpandedEvent());
|
||||
},
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
|
||||
Reference in New Issue
Block a user