import 'package:flutter/material.dart'; import 'package:package_info/package_info.dart'; import '../../../../api/mhsl/server/feedback/addFeedback.dart'; import '../../../../api/mhsl/server/feedback/addFeedbackParams.dart'; import '../../../../model/accountData.dart'; import '../../../../widget/infoDialog.dart'; class FeedbackDialog extends StatefulWidget { const FeedbackDialog({super.key}); @override State createState() => _FeedbackDialogState(); } class _FeedbackDialogState extends State { final TextEditingController _feedbackInput = TextEditingController(); String? _error; @override Widget build(BuildContext context) { return AlertDialog( title: const Text("Feedback"), content: Column( mainAxisSize: MainAxisSize.min, children: [ const Text("Feedback, Anregungen, Ideen, Fehler und Verbesserungen"), const SizedBox(height: 10), const Text("Bitte gib keine geheimen Daten wie z.B. Passwörter weiter.", style: TextStyle(fontSize: 10)), const SizedBox(height: 10), TextField( controller: _feedbackInput, autofocus: true, decoration: const InputDecoration( border: OutlineInputBorder(), label: Text("Feedback und Verbesserungen") ), // style: TextStyle(), // expands: true, minLines: 3, maxLines: 5, ), Visibility( visible: _error != null, child: Text("Senden fehlgeschlagen: $_error", style: const TextStyle(color: Colors.red)) ) ], ), actions: [ TextButton(onPressed: () => Navigator.of(context).pop(), child: const Text("Abbrechen")), TextButton( onPressed: () async { AddFeedback( AddFeedbackParams( user: AccountData().getUserSecret(), feedback: _feedbackInput.text, appVersion: int.parse((await PackageInfo.fromPlatform()).buildNumber) ) ) .run() .then((value) { Navigator.of(context).pop(); InfoDialog.show(context, "Danke für dein Feedback!"); }) .catchError((error, trace) { setState(() { _error = error.toString(); }); }); }, child: const Text("Senden"), ) ], ); } }