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! print(_textInput); print(slider.getSliderValue()); print('Eingeschlafen um: ${sleepTimePicker.getCurrentTime}'); _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) ], )); } }