import 'package:flutter/material.dart'; import 'package:smoke_cess_app/widgets/elevated_card.dart'; import 'package:smoke_cess_app/widgets/slider.dart'; import 'package:smoke_cess_app/widgets/submit_form_button.dart'; import 'package:smoke_cess_app/widgets/text_formfield.dart'; import 'package:smoke_cess_app/widgets/timepicker.dart'; class SleepForm extends StatefulWidget { const SleepForm({super.key}); @override State createState() => _SleepFormState(); } class _SleepFormState extends State { final GlobalKey _sleepFormKey = GlobalKey(); MySlider slider = const MySlider('Bewerte deinen Schlaf'); String _textInput = ""; TimePicker sleepTimePicker = TimePicker( const TimeOfDay(hour: 22, minute: 00), descriptionText: 'eingeschlafen um', ); TimePicker wakeUpTimePicker = TimePicker( const TimeOfDay(hour: 8, minute: 00), descriptionText: 'aufgewacht um', ); void submitForm() { if (_sleepFormKey.currentState!.validate()) { _sleepFormKey.currentState?.save(); //call every onSave Method //TODO Businesslogik aufrufen! String sleepComment = _textInput; int sleepQuality = slider.getSliderValue().round(); TimeOfDay sleepedAt = sleepTimePicker.getCurrentTime; TimeOfDay wokeUpAt = wakeUpTimePicker.getCurrentTime; print( 'Eingeschlafen um: $sleepedAt, aufgewacht um: $wokeUpAt. \nKommentar zum Schlaf: $sleepComment\nSchlafqualität: $sleepQuality'); _sleepFormKey.currentState?.reset(); } } void onFormFieldSave(String? newValue) => _textInput = newValue!; @override Widget build(BuildContext context) { return Form( key: _sleepFormKey, child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ ElevatedCard(sleepTimePicker), ElevatedCard(wakeUpTimePicker), ElevatedCard(slider), ElevatedCard( MyTextFormField('Beschreibe deinen Schlaf', onFormFieldSave)), SubmitFormButton(submitForm) ], )); } }