import 'package:aitrainer_app/viewmodel/user_changing_view_model.dart';
import 'package:aitrainer_app/viewmodel/user_view_model.dart';
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
import 'package:aitrainer_app/widgets/nav_drawer.dart';

class RegistrationPage extends StatefulWidget{
  _RegistrationPageState createState() => _RegistrationPageState();
}

class _RegistrationPageState extends State {
  final UserViewModel user = UserViewModel();
  bool _obscureText = true;

  final _formKey = GlobalKey<FormState>();

  @override
  Widget build(BuildContext context) {
    UserChangingViewModel model = UserChangingViewModel(user);
    user.createNew();
    return Scaffold(
        drawer: NavDrawer(),
        appBar: AppBar(
          title: Text('Registration'),
        ),
        body: Center(
            child: Form(
                key: _formKey,
                child: Column(
                  children: <Widget>[
                    TextFormField(
                      decoration: InputDecoration(
                        border: OutlineInputBorder(),
                        labelText: 'Email',
                        icon: const Padding(
                          padding:const EdgeInsets.only(left: 20.0, top: 50.0),
                          child: const Icon(Icons.people)
                        )
                      ),
                    /*  validator: (String input) {
                          RegExp exp = new RegExp(r"[\w._]+\@[\w._]+.[a-z]+",
                            caseSensitive: false,
                            multiLine: false,);
                          String ret = exp.hasMatch(input) == true ?
                              null:
                            "Please type an email address";
                          return ret;
                        },*/
                      onChanged: (input) => user.setEmail(input),
                    ),
                    new TextFormField(
                      decoration: const InputDecoration(
                          labelText: 'Password',
                          icon: const Padding(
                              padding: const EdgeInsets.only(left: 20.0, top: 15.0),
                              child: const Icon(Icons.lock))),
                   /*   validator: (String input) {
                        String rc = input.length < 4 ? 'Password too short.' : null;
                        return rc;
                      }, */
                      onChanged: (input) => user.setPassword(input),
                      obscureText: _obscureText,
                    ),
                    new InkWell(
                        child: new Text('I have an account'),
                        onTap: () => Navigator.of(context).pushNamed('login'),
                    ),
                    new FloatingActionButton(
                        child: Icon(Icons.cloud_done,),
                        onPressed:() =>  {
                          if (_formKey.currentState.validate()) {
                            model = UserChangingViewModel(user),
                            model.addUser(),
                            Navigator.pop(context),
                          }
                        }
                    )
                ])
            ),
        ),

    );
  }
}