Update when submiting form

main
Kai Mannweiler 2023-03-02 20:16:46 +01:00
parent d18bf8f56d
commit e8a123413c
4 changed files with 34 additions and 16 deletions

View File

@ -1,5 +1,7 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:smoke_cess_app/providers/tasks_provider.dart';
import 'package:smoke_cess_app/services/pages_service.dart';
import 'package:smoke_cess_app/widgets/slider.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/submit_form_button.dart';
import 'package:smoke_cess_app/widgets/text_formfield.dart'; import 'package:smoke_cess_app/widgets/text_formfield.dart';
@ -13,6 +15,7 @@ class MoodForm extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
var inputModel = context.watch<InputProvider>(); var inputModel = context.watch<InputProvider>();
var tasksModel = context.watch<TasksProvider>();
return Column( return Column(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
@ -30,6 +33,7 @@ class MoodForm extends StatelessWidget {
), ),
SubmitFormButton( SubmitFormButton(
submitCallback: inputModel.saveMood, submitCallback: inputModel.saveMood,
updateTasks: () => tasksModel.setTaksDone(Pages.mood),
) )
], ],
); );

View File

@ -1,11 +1,12 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:smoke_cess_app/providers/tasks_provider.dart';
import 'package:smoke_cess_app/widgets/drop_down.dart'; import 'package:smoke_cess_app/widgets/drop_down.dart';
import 'package:smoke_cess_app/widgets/submit_form_button.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/text_formfield.dart';
import '../providers/input_provider.dart'; import '../providers/input_provider.dart';
import '../providers/settings_provider.dart'; import '../providers/settings_provider.dart';
import '../services/pages_service.dart';
import 'elevated_card.dart'; import 'elevated_card.dart';
class RelapseForm extends StatelessWidget { class RelapseForm extends StatelessWidget {
@ -15,6 +16,7 @@ class RelapseForm extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
var inputModel = context.watch<InputProvider>(); var inputModel = context.watch<InputProvider>();
var settingsModel = context.watch<SettingsProvider>(); var settingsModel = context.watch<SettingsProvider>();
var tasksModel = context.watch<TasksProvider>();
return Column( return Column(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
@ -29,7 +31,10 @@ class RelapseForm extends StatelessWidget {
const SizedBox( const SizedBox(
height: 80, height: 80,
), ),
SubmitFormButton(submitCallback: inputModel.saveRelapse) SubmitFormButton(
submitCallback: inputModel.saveRelapse,
updateTasks: () => tasksModel.setTaksDone(Pages.mood),
)
], ],
); );
} }

View File

@ -1,5 +1,6 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:smoke_cess_app/providers/tasks_provider.dart';
import 'package:smoke_cess_app/widgets/elevated_card.dart'; import 'package:smoke_cess_app/widgets/elevated_card.dart';
import 'package:smoke_cess_app/widgets/slider.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/submit_form_button.dart';
@ -7,6 +8,7 @@ import 'package:smoke_cess_app/widgets/text_formfield.dart';
import 'package:smoke_cess_app/widgets/timepicker.dart'; import 'package:smoke_cess_app/widgets/timepicker.dart';
import '../providers/input_provider.dart'; import '../providers/input_provider.dart';
import '../services/pages_service.dart';
class SleepForm extends StatelessWidget { class SleepForm extends StatelessWidget {
const SleepForm({Key? key}) : super(key: key); const SleepForm({Key? key}) : super(key: key);
@ -14,6 +16,7 @@ class SleepForm extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
InputProvider inputModel = context.watch<InputProvider>(); InputProvider inputModel = context.watch<InputProvider>();
TasksProvider tasksModel = context.watch<TasksProvider>();
String wokeUpKey = 'wokeUpAt'; String wokeUpKey = 'wokeUpAt';
String sleptKey = 'sleptAt'; String sleptKey = 'sleptAt';
@ -44,6 +47,7 @@ class SleepForm extends StatelessWidget {
), ),
SubmitFormButton( SubmitFormButton(
submitCallback: () => inputModel.saveSleep(wokeUpKey, sleptKey), submitCallback: () => inputModel.saveSleep(wokeUpKey, sleptKey),
updateTasks: () => tasksModel.setTaksDone(Pages.mood),
) )
], ],
); );

View File

@ -3,7 +3,9 @@ import 'package:flutter/material.dart';
class SubmitFormButton extends StatelessWidget { class SubmitFormButton extends StatelessWidget {
final Future<int> Function() submitCallback; final Future<int> Function() submitCallback;
const SubmitFormButton({super.key, required this.submitCallback}); final void Function() updateTasks;
const SubmitFormButton(
{super.key, required this.submitCallback, required this.updateTasks});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -12,19 +14,22 @@ class SubmitFormButton extends StatelessWidget {
child: ElevatedButton( child: ElevatedButton(
onPressed: () async { onPressed: () async {
int success = await submitCallback(); int success = await submitCallback();
success != 0 if (success != 0) {
? AwesomeDialog( AwesomeDialog(
context: context, context: context,
dialogType: DialogType.success, dialogType: DialogType.success,
title: 'Gespeichert', title: 'Gespeichert',
desc: 'Der Eintrag wurde erfolgreich gespeichert', desc: 'Der Eintrag wurde erfolgreich gespeichert',
).show() ).show();
: AwesomeDialog( updateTasks();
context: context, } else {
dialogType: DialogType.error, AwesomeDialog(
title: 'Fehler', context: context,
desc: 'Der Eintrag konnte nicht gespeichert werden', dialogType: DialogType.error,
).show(); title: 'Fehler',
desc: 'Der Eintrag konnte nicht gespeichert werden',
).show();
}
}, },
child: const Text('Speichern'), child: const Text('Speichern'),
), ),