101 lines
2.9 KiB
Dart
101 lines
2.9 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:instruction_app/screens/home_page.dart';
|
|
|
|
class AuthorizationPage extends StatefulWidget {
|
|
const AuthorizationPage({super.key});
|
|
|
|
@override
|
|
State<AuthorizationPage> createState() => _AuthorizationPage();
|
|
}
|
|
|
|
class _AuthorizationPage extends State<AuthorizationPage> {
|
|
final TextEditingController _loginController = new TextEditingController();
|
|
final TextEditingController _passwordController = new TextEditingController();
|
|
final borederRadius = BorderRadius.all(Radius.circular(10));
|
|
bool passwordVisible = false;
|
|
|
|
void _login(){
|
|
final String login = _loginController.text;
|
|
final String password = _passwordController.text;
|
|
|
|
if (login == 'admin' && password == '123456') {
|
|
Navigator.of(context).push(MaterialPageRoute(
|
|
builder: (ctx) => HomePage())
|
|
);
|
|
}
|
|
}
|
|
|
|
@override
|
|
void dispose() {
|
|
super.dispose();
|
|
_loginController.dispose();
|
|
_passwordController.dispose();
|
|
}
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return Scaffold(
|
|
appBar: AppBar(
|
|
title: Text("Авторизация"),
|
|
),
|
|
body: Padding(
|
|
padding: EdgeInsets.all(80),
|
|
child: Column(
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
crossAxisAlignment: CrossAxisAlignment.center,
|
|
children: [
|
|
_buildFormWidget(context),
|
|
SizedBox(height: 25,),
|
|
TextButton(
|
|
style: ButtonStyle(
|
|
backgroundColor: WidgetStateProperty.all(Colors.blue),
|
|
foregroundColor: WidgetStateProperty.all(Colors.white),
|
|
),
|
|
onPressed: () => _login(),
|
|
child: Text("Войти")
|
|
)
|
|
],
|
|
)
|
|
)
|
|
);
|
|
}
|
|
|
|
Widget _buildFormWidget(BuildContext context) {
|
|
return Column(
|
|
children: [
|
|
TextField(
|
|
controller: _loginController,
|
|
decoration: InputDecoration(
|
|
prefixIcon: Icon(Icons.account_circle),
|
|
border: OutlineInputBorder(
|
|
borderRadius: borederRadius
|
|
),
|
|
labelText: 'Логин'
|
|
)
|
|
),
|
|
SizedBox(height: 25,),
|
|
TextField(
|
|
controller: _passwordController,
|
|
obscureText: !passwordVisible,
|
|
decoration: InputDecoration(
|
|
prefixIcon: Icon(Icons.lock),
|
|
border: OutlineInputBorder(
|
|
borderRadius: borederRadius
|
|
),
|
|
labelText: 'Пароль',
|
|
suffixIcon: IconButton(
|
|
icon: Icon(
|
|
passwordVisible ? Icons.visibility : Icons.visibility_off
|
|
),
|
|
onPressed: () {
|
|
setState(() {
|
|
passwordVisible = !passwordVisible;
|
|
});
|
|
}
|
|
)
|
|
)
|
|
),
|
|
],
|
|
);
|
|
}
|
|
} |