added simple validation

This commit is contained in:
max 2025-07-17 16:09:38 +03:00
parent ca1c41a52b
commit 42448f928b
1 changed files with 39 additions and 22 deletions

View File

@ -11,20 +11,39 @@ class AuthorizationPage extends StatefulWidget {
class _AuthorizationPage extends State<AuthorizationPage> { class _AuthorizationPage extends State<AuthorizationPage> {
final TextEditingController _loginController = new TextEditingController(); final TextEditingController _loginController = new TextEditingController();
final TextEditingController _passwordController = new TextEditingController(); final TextEditingController _passwordController = new TextEditingController();
final _formKey = GlobalKey<FormState>();
final borederRadius = BorderRadius.all(Radius.circular(10)); final borederRadius = BorderRadius.all(Radius.circular(10));
bool passwordVisible = false; bool passwordVisible = false;
void _login(){ void _login(){
final String login = _loginController.text; if (_formKey.currentState!.validate()) {
final String password = _passwordController.text; final String login = _loginController.text;
final String password = _passwordController.text;
if (login == 'admin' && password == '123456') { if (login == 'admin' && password == '123456') {
Navigator.of(context).push(MaterialPageRoute( Navigator.of(context).push(MaterialPageRoute(
builder: (ctx) => HomePage()) builder: (ctx) => HomePage())
); );
}
} }
} }
String? _validatePassword(String? password){
if (password == null || password.isEmpty)
return 'Введите пароль';
if (password != '123456')
return 'Пароль: 123456';
return null;
}
String? _validateLogin(String? login){
if (login == null || login.isEmpty)
return 'Введите логин';
if (login != 'admin')
return 'Логин: admin';
return null;
}
@override @override
void dispose() { void dispose() {
super.dispose(); super.dispose();
@ -61,20 +80,22 @@ class _AuthorizationPage extends State<AuthorizationPage> {
} }
Widget _buildFormWidget(BuildContext context) { Widget _buildFormWidget(BuildContext context) {
return Column( return Form(
key: _formKey,
child: Column(
children: [ children: [
TextField( TextFormField(
controller: _loginController, controller: _loginController,
decoration: InputDecoration( decoration: InputDecoration(
prefixIcon: Icon(Icons.account_circle), prefixIcon: Icon(Icons.account_circle),
border: OutlineInputBorder( border: OutlineInputBorder(
borderRadius: borederRadius borderRadius: borederRadius
), ),
labelText: 'Логин' labelText: 'Логин'),
) validator: (text) => _validateLogin(text),
), ),
SizedBox(height: 25,), SizedBox(height: 25,),
TextField( TextFormField(
controller: _passwordController, controller: _passwordController,
obscureText: !passwordVisible, obscureText: !passwordVisible,
decoration: InputDecoration( decoration: InputDecoration(
@ -85,17 +106,13 @@ class _AuthorizationPage extends State<AuthorizationPage> {
labelText: 'Пароль', labelText: 'Пароль',
suffixIcon: IconButton( suffixIcon: IconButton(
icon: Icon( icon: Icon(
passwordVisible ? Icons.visibility : Icons.visibility_off passwordVisible ? Icons.visibility : Icons.visibility_off),
), onPressed: () => setState(() => passwordVisible = !passwordVisible),
onPressed: () { )),
setState(() { validator: (text) => _validatePassword(text),
passwordVisible = !passwordVisible;
});
}
)
)
), ),
], ],
); )
);
} }
} }