import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:smoke_cess_app/models/mood.dart'; import 'package:smoke_cess_app/services/database_service.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 '../providers/input_provider.dart'; import 'elevated_card.dart'; class MoodForm extends StatefulWidget { const MoodForm({super.key}); @override State createState() => _MoodFormState(); } class _MoodFormState extends State { final GlobalKey _moodFormKey = GlobalKey(); MySlider slider = MySlider(); String _textInput = ""; void submitForm(BuildContext context) { var inputModel = context.watch(); print(inputModel.sliderValue); if (_moodFormKey.currentState!.validate()) { _moodFormKey.currentState?.save(); //call every onSave Method Mood mood = Mood(inputModel.sliderValue.toInt(), _textInput, DateTime.now()); DatabaseService.instance.addMood(mood); _moodFormKey.currentState?.reset(); } } void onFormFieldSave(String? newValue) => _textInput = newValue!; @override Widget build(BuildContext context) { return Form( key: _moodFormKey, child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ ElevatedCard( title: 'Stimmungsbewertung', child: slider, ), const SizedBox(height: 16), ElevatedCard( title: 'Beschreibe deine Stimmung', child: MyTextFormField('Beschreibe deine Stimmung', onFormFieldSave), ), SubmitFormButton(() => submitForm(context)) ], )); } }