diff --git a/lib/main.dart b/lib/main.dart index 855f281..a08e2bd 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,7 +1,10 @@ import 'package:flutter/material.dart'; import 'package:google_nav_bar/google_nav_bar.dart'; +import 'package:mensaapp/providers/ambienteProvider.dart'; +import 'package:mensaapp/providers/anmerkungProvider.dart'; import 'package:mensaapp/providers/essenProvider.dart'; import 'package:mensaapp/providers/pageProvider.dart'; +import 'package:mensaapp/providers/serviceProvider.dart'; import 'package:mensaapp/providers/spezielleErnaehrungProvider.dart'; import 'package:provider/provider.dart'; @@ -23,6 +26,15 @@ class MyApp extends StatelessWidget { ChangeNotifierProvider( create: (context) => EssenProvider(), ), + ChangeNotifierProvider( + create: (context) => ServiceProvider(), + ), + ChangeNotifierProvider( + create: (context) => AmbienteProvider(), + ), + ChangeNotifierProvider( + create: (context) => AnmerkungProvider(), + ), ChangeNotifierProvider( create: (context) => SpezielleErnaehrungProvider(), ) diff --git a/lib/modules/Test.dart b/lib/modules/Test.dart deleted file mode 100644 index e69de29..0000000 diff --git a/lib/pages/pageAmbiente.dart b/lib/pages/pageAmbiente.dart index e9d7cba..91375a3 100644 --- a/lib/pages/pageAmbiente.dart +++ b/lib/pages/pageAmbiente.dart @@ -1,10 +1,80 @@ import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +import '../modules/ratingStars.dart'; +import '../providers/ambienteProvider.dart'; class PageAmbiente extends StatelessWidget { const PageAmbiente({super.key}); @override Widget build(BuildContext context) { - return const Placeholder(); + return Center( + child: SizedBox( + width: 600, + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const Text( + "Frage1*", + style: TextStyle(fontSize: 35), + ), + Consumer( + builder: (context, essenProvider, child) { + return RatingStars(onRate: (value) { + essenProvider.setRatingFrage1(value); + }, initRating: essenProvider.ratingFrage1,); + }, + ) + ], + ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const Text( + "Frage2*", + style: TextStyle(fontSize: 35), + ), + Consumer( + builder: (context, essenProvider, child) { + return RatingStars(onRate: (value) { + essenProvider.setRatingFrage2(value); + }, initRating: essenProvider.ratingFrage2,); + }, + ) + ], + ), + const SizedBox( + height: 50, + ), + Consumer( + builder: (context, essenProvider, child) { + return TextFormField( + initialValue: essenProvider.freiText, + onChanged: (value) { + essenProvider.setFreiText(value); + }, + autofocus: false, + maxLength: 500, + maxLines: 4, + decoration: InputDecoration( + labelText: "Dein Feedback (optional)", + labelStyle: const TextStyle(fontSize: 20), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(15) + ), + ), + style: TextStyle(fontSize: 20), + ); + }, + ) + ], + ), + ), + ); } } diff --git a/lib/pages/pageAnmerkungen.dart b/lib/pages/pageAnmerkungen.dart index f38b6d3..a0c5be0 100644 --- a/lib/pages/pageAnmerkungen.dart +++ b/lib/pages/pageAnmerkungen.dart @@ -1,10 +1,80 @@ import 'package:flutter/material.dart'; +import 'package:mensaapp/providers/anmerkungProvider.dart'; +import 'package:provider/provider.dart'; + +import '../modules/ratingStars.dart'; class PageAnmerkungen extends StatelessWidget { const PageAnmerkungen({super.key}); @override Widget build(BuildContext context) { - return const Placeholder(); + return Center( + child: SizedBox( + width: 600, + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const Text( + "Frage1*", + style: TextStyle(fontSize: 35), + ), + Consumer( + builder: (context, essenProvider, child) { + return RatingStars(onRate: (value) { + essenProvider.setRatingFrage1(value); + }, initRating: essenProvider.ratingFrage1,); + }, + ) + ], + ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const Text( + "Frage2*", + style: TextStyle(fontSize: 35), + ), + Consumer( + builder: (context, essenProvider, child) { + return RatingStars(onRate: (value) { + essenProvider.setRatingFrage2(value); + }, initRating: essenProvider.ratingFrage2,); + }, + ) + ], + ), + const SizedBox( + height: 50, + ), + Consumer( + builder: (context, essenProvider, child) { + return TextFormField( + initialValue: essenProvider.freiText, + onChanged: (value) { + essenProvider.setFreiText(value); + }, + autofocus: false, + maxLength: 500, + maxLines: 4, + decoration: InputDecoration( + labelText: "Dein Feedback (optional)", + labelStyle: const TextStyle(fontSize: 20), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(15) + ), + ), + style: TextStyle(fontSize: 20), + ); + }, + ) + ], + ), + ), + ); } } diff --git a/lib/pages/pageEssen.dart b/lib/pages/pageEssen.dart index 3767dcf..c1eedbb 100644 --- a/lib/pages/pageEssen.dart +++ b/lib/pages/pageEssen.dart @@ -11,15 +11,12 @@ class PageEssen extends StatelessWidget { @override Widget build(BuildContext context) { return Center( - child: Container( + child: SizedBox( width: 600, child: Column( crossAxisAlignment: CrossAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center, children: [ - const SizedBox( - height: 50, - ), Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ @@ -64,7 +61,7 @@ class PageEssen extends StatelessWidget { }, autofocus: false, maxLength: 500, - maxLines: 5, + maxLines: 4, decoration: InputDecoration( labelText: "Dein Feedback (optional)", labelStyle: const TextStyle(fontSize: 20), diff --git a/lib/pages/pageService.dart b/lib/pages/pageService.dart index b5e5973..5701e6d 100644 --- a/lib/pages/pageService.dart +++ b/lib/pages/pageService.dart @@ -1,10 +1,80 @@ import 'package:flutter/material.dart'; +import 'package:mensaapp/providers/serviceProvider.dart'; +import 'package:provider/provider.dart'; + +import '../modules/ratingStars.dart'; class PageService extends StatelessWidget { const PageService({super.key}); @override Widget build(BuildContext context) { - return const Placeholder(); + return Center( + child: SizedBox( + width: 600, + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const Text( + "Frage1*", + style: TextStyle(fontSize: 35), + ), + Consumer( + builder: (context, essenProvider, child) { + return RatingStars(onRate: (value) { + essenProvider.setRatingFrage1(value); + }, initRating: essenProvider.ratingFrage1,); + }, + ) + ], + ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const Text( + "Frage2*", + style: TextStyle(fontSize: 35), + ), + Consumer( + builder: (context, essenProvider, child) { + return RatingStars(onRate: (value) { + essenProvider.setRatingFrage2(value); + }, initRating: essenProvider.ratingFrage2,); + }, + ) + ], + ), + const SizedBox( + height: 50, + ), + Consumer( + builder: (context, essenProvider, child) { + return TextFormField( + initialValue: essenProvider.freiText, + onChanged: (value) { + essenProvider.setFreiText(value); + }, + autofocus: false, + maxLength: 500, + maxLines: 4, + decoration: InputDecoration( + labelText: "Dein Feedback (optional)", + labelStyle: const TextStyle(fontSize: 20), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(15) + ), + ), + style: TextStyle(fontSize: 20), + ); + }, + ) + ], + ), + ), + ); } } diff --git a/lib/pages/pageSpezielleErnaehrung.dart b/lib/pages/pageSpezielleErnaehrung.dart index 416596e..0c13dd0 100644 --- a/lib/pages/pageSpezielleErnaehrung.dart +++ b/lib/pages/pageSpezielleErnaehrung.dart @@ -12,20 +12,17 @@ class PageSpezielleErnaehrung extends StatelessWidget { @override Widget build(BuildContext context) { return Center( - child: Container( + child: SizedBox( width: 800, child: Column( crossAxisAlignment: CrossAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center, children: [ - const SizedBox( - height: 50, - ), Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ const Text( - "Sitzmöglichkeit*", + "Vegan?*", style: TextStyle(fontSize: 35), ), Consumer( diff --git a/lib/providers/ambienteProvider.dart b/lib/providers/ambienteProvider.dart new file mode 100644 index 0000000..ffff5cf --- /dev/null +++ b/lib/providers/ambienteProvider.dart @@ -0,0 +1,22 @@ +import 'package:flutter/cupertino.dart'; + +class AmbienteProvider extends ChangeNotifier { + double ratingFrage1 = 0; + double ratingFrage2 = 0; + String freiText = ""; + + void setRatingFrage1(double rating) { + ratingFrage1 = rating; + notifyListeners(); + } + + void setRatingFrage2(double rating) { + ratingFrage2 = rating; + notifyListeners(); + } + + void setFreiText(String text) { + freiText = text; + notifyListeners(); + } +} \ No newline at end of file diff --git a/lib/providers/anmerkungProvider.dart b/lib/providers/anmerkungProvider.dart new file mode 100644 index 0000000..3fef7f9 --- /dev/null +++ b/lib/providers/anmerkungProvider.dart @@ -0,0 +1,22 @@ +import 'package:flutter/cupertino.dart'; + +class AnmerkungProvider extends ChangeNotifier { + double ratingFrage1 = 0; + double ratingFrage2 = 0; + String freiText = ""; + + void setRatingFrage1(double rating) { + ratingFrage1 = rating; + notifyListeners(); + } + + void setRatingFrage2(double rating) { + ratingFrage2 = rating; + notifyListeners(); + } + + void setFreiText(String text) { + freiText = text; + notifyListeners(); + } +} \ No newline at end of file diff --git a/lib/providers/serviceProvider.dart b/lib/providers/serviceProvider.dart new file mode 100644 index 0000000..5620c0d --- /dev/null +++ b/lib/providers/serviceProvider.dart @@ -0,0 +1,22 @@ +import 'package:flutter/material.dart'; + +class ServiceProvider extends ChangeNotifier { + double ratingFrage1 = 0; + double ratingFrage2 = 0; + String freiText = ""; + + void setRatingFrage1(double rating) { + ratingFrage1 = rating; + notifyListeners(); + } + + void setRatingFrage2(double rating) { + ratingFrage2 = rating; + notifyListeners(); + } + + void setFreiText(String text) { + freiText = text; + notifyListeners(); + } +} \ No newline at end of file diff --git a/lib/widgets/Test.dart b/lib/widgets/Test.dart deleted file mode 100644 index e69de29..0000000