mirror of
https://gitlab.com/comunic/comunicmobile
synced 2024-10-23 06:53:23 +00:00
93 lines
2.2 KiB
Dart
93 lines
2.2 KiB
Dart
import 'package:comunic/utils/input_utils.dart';
|
|
import 'package:comunic/utils/intl_utils.dart';
|
|
import 'package:flutter/material.dart';
|
|
|
|
/// Login route
|
|
///
|
|
/// @author Pierre HUBERT
|
|
|
|
class LoginRoute extends StatefulWidget {
|
|
@override
|
|
State<StatefulWidget> createState() => _LoginRouteState();
|
|
}
|
|
|
|
class _LoginRouteState extends State<LoginRoute> {
|
|
String _currEmail;
|
|
String _currPassword;
|
|
|
|
@override
|
|
void initState() {
|
|
super.initState();
|
|
_currEmail = "";
|
|
_currPassword = "";
|
|
}
|
|
|
|
void _emailChanged(String newEmail) {
|
|
setState(() {
|
|
_currEmail = newEmail;
|
|
});
|
|
}
|
|
|
|
void _passwordChanged(String newValue) {
|
|
setState(() {
|
|
_currPassword = newValue;
|
|
});
|
|
}
|
|
|
|
/// Call this whenever the user request to perform login
|
|
void _submitForm() {
|
|
|
|
}
|
|
|
|
/// Build login form
|
|
Widget _buildLoginForm(){
|
|
return SingleChildScrollView(
|
|
child: Padding(
|
|
padding: const EdgeInsets.all(8.0),
|
|
child: Column(
|
|
children: <Widget>[
|
|
Text(tr("Please sign into your Comunic account: ")),
|
|
//Email address
|
|
TextField(
|
|
keyboardType: TextInputType.emailAddress,
|
|
decoration: InputDecoration(
|
|
labelText: tr("Email address"),
|
|
alignLabelWithHint: true,
|
|
errorText:
|
|
_currEmail.length > 0 && !validateEmail(_currEmail)
|
|
? tr("Invalid email address!")
|
|
: null),
|
|
onChanged: _emailChanged,
|
|
),
|
|
|
|
//Password
|
|
TextField(
|
|
obscureText: true,
|
|
decoration: InputDecoration(
|
|
labelText: tr("Password"),
|
|
alignLabelWithHint: true,
|
|
),
|
|
onChanged: _passwordChanged,
|
|
),
|
|
|
|
RaisedButton(
|
|
child: Text(tr("Sign in")),
|
|
onPressed: !validateEmail(_currEmail) || _currPassword.length < 3 ? null : _submitForm,
|
|
)
|
|
],
|
|
),
|
|
),
|
|
);
|
|
}
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return Scaffold(
|
|
appBar: AppBar(
|
|
title: Text("Comunic"),
|
|
),
|
|
body: _buildLoginForm()
|
|
);
|
|
}
|
|
}
|