diff --git a/lib/ui/routes/reset_password_route.dart b/lib/ui/routes/reset_password_route.dart index c06d550..df08435 100644 --- a/lib/ui/routes/reset_password_route.dart +++ b/lib/ui/routes/reset_password_route.dart @@ -1,4 +1,5 @@ import 'package:comunic/helpers/account_helper.dart'; +import 'package:comunic/ui/widgets/dialogs/cancel_dialog_button.dart'; import 'package:comunic/ui/widgets/safe_state.dart'; import 'package:comunic/utils/input_utils.dart'; import 'package:comunic/utils/intl_utils.dart'; @@ -27,6 +28,8 @@ class ResetPasswordRoute extends StatelessWidget { } } +enum _SelectedOption { NONE } + class _ResetPasswordBody extends StatefulWidget { @override _ResetPasswordBodyState createState() => _ResetPasswordBodyState(); @@ -47,6 +50,8 @@ class _ResetPasswordBodyState extends SafeState<_ResetPasswordBody> { /// Step 2 - Offer options bool _hasSecurityQuestions; + var _selectedOption = _SelectedOption.NONE; + void _setLoading(bool loading) => setState(() => _loading = loading); @override @@ -54,12 +59,18 @@ class _ResetPasswordBodyState extends SafeState<_ResetPasswordBody> { if (_loading) return buildCenteredProgressBar(); if (_emailAddress == null) return _buildEnterEmailAddressScreen(); + + switch (_selectedOption) { + case _SelectedOption.NONE: + return _buildOptionsScreen(); + } } Widget _buildEnterEmailAddressScreen() { return Column( mainAxisSize: MainAxisSize.min, children: [ + Text(tr("Please enter your email address to reset your password:")), TextField( controller: _emailController, onChanged: (s) => setState(() {}), @@ -108,4 +119,31 @@ class _ResetPasswordBodyState extends SafeState<_ResetPasswordBody> { _setLoading(false); } } + + /// Offer the user the options he has to reset his account + Widget _buildOptionsScreen() => Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + Text(tr("Here are your options to reset your account:")), + Container(height: 15), + OutlineButton.icon( + onPressed: _openSendEmailDialog, + icon: Icon(Icons.email), + label: Text(tr("Send us an email to ask for help")), + ), + Container(height: 15), + ], + ); + + /// Show a dialog with our email address + void _openSendEmailDialog() { + showDialog( + context: context, + builder: (c) => AlertDialog( + title: Text("Contact us"), + content: Text(tr("You can reach us at contact@communiquons.org")), + actions: [CancelDialogButton()], + )); + } }