email_entry_page.dart 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. import 'package:flutter/cupertino.dart';
  2. import 'package:flutter/material.dart';
  3. import 'package:flutter/widgets.dart';
  4. import 'package:photos/core/configuration.dart';
  5. import 'package:photos/services/user_service.dart';
  6. import 'package:photos/ui/common_elements.dart';
  7. import 'package:photos/utils/dialog_util.dart';
  8. import 'package:photos/utils/email_util.dart';
  9. class EmailEntryPage extends StatefulWidget {
  10. EmailEntryPage({Key key}) : super(key: key);
  11. @override
  12. _EmailEntryPageState createState() => _EmailEntryPageState();
  13. }
  14. class _EmailEntryPageState extends State<EmailEntryPage> {
  15. TextEditingController _emailController;
  16. @override
  17. void initState() {
  18. _emailController =
  19. TextEditingController(text: Configuration.instance.getEmail());
  20. super.initState();
  21. }
  22. @override
  23. Widget build(BuildContext context) {
  24. return Scaffold(
  25. appBar: AppBar(
  26. title: Text("Sign Up"),
  27. ),
  28. body: _getBody(),
  29. );
  30. }
  31. Widget _getBody() {
  32. return SingleChildScrollView(
  33. child: Container(
  34. padding: EdgeInsets.all(8),
  35. child: Column(
  36. children: [
  37. Image.asset(
  38. "assets/welcome.png",
  39. width: 300,
  40. height: 200,
  41. ),
  42. Padding(padding: EdgeInsets.all(12)),
  43. TextFormField(
  44. decoration: InputDecoration(
  45. hintText: 'you@email.com',
  46. contentPadding: EdgeInsets.all(20),
  47. ),
  48. controller: _emailController,
  49. autofocus: true,
  50. autocorrect: false,
  51. keyboardType: TextInputType.emailAddress,
  52. ),
  53. Padding(padding: EdgeInsets.all(8)),
  54. Container(
  55. width: double.infinity,
  56. height: 44,
  57. child: button("Sign In", onPressed: () {
  58. final email = _emailController.text;
  59. if (!isValidEmail(email)) {
  60. showErrorDialog(context, "Invalid email address",
  61. "Please enter a valid email address.");
  62. return;
  63. }
  64. Configuration.instance.setEmail(email);
  65. UserService.instance.getOtt(context, email);
  66. }),
  67. ),
  68. ],
  69. ),
  70. ),
  71. );
  72. }
  73. }