created login form
This commit is contained in:
+139
-5
@@ -1,20 +1,154 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:lixo/components/nc_base_page.dart';
|
||||
import 'package:validatorless/validatorless.dart';
|
||||
import 'package:velocity_x/velocity_x.dart';
|
||||
|
||||
class LoginPage extends StatelessWidget {
|
||||
// import 'package:velocity_x/velocity_x.dart';
|
||||
|
||||
import '../components/nc_form_field.dart';
|
||||
// import '../stores/login_store.dart';
|
||||
|
||||
class LoginPage extends StatefulWidget {
|
||||
const LoginPage({super.key});
|
||||
|
||||
@override
|
||||
State<LoginPage> createState() => _LoginPageState();
|
||||
}
|
||||
|
||||
class _LoginPageState extends State<LoginPage> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return const NcBasePage(
|
||||
body: Center(
|
||||
// LoginStore store = VxState.store as LoginStore;
|
||||
|
||||
final formKey = GlobalKey<FormState>();
|
||||
|
||||
String email = '';
|
||||
String password = '';
|
||||
return Container(
|
||||
color: const Color.fromRGBO(166, 0, 249, 1),
|
||||
child: Center(
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Text("Login Page"),
|
||||
Card(
|
||||
elevation: 20,
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(10),
|
||||
side: const BorderSide(
|
||||
width: 1,
|
||||
color: Colors.black,
|
||||
),
|
||||
),
|
||||
child: Column(
|
||||
children: [
|
||||
const SizedBox(
|
||||
height: 32.0,
|
||||
),
|
||||
"Login".text.xl5.bold.make(),
|
||||
const SizedBox(
|
||||
height: 32.0,
|
||||
),
|
||||
SizedBox(
|
||||
width: MediaQuery.of(context).size.width / 3,
|
||||
child: Form(
|
||||
key: formKey,
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.only(
|
||||
left: 64.0,
|
||||
right: 64,
|
||||
bottom: 32,
|
||||
),
|
||||
child: Column(
|
||||
children: [
|
||||
NCFormField(
|
||||
label: 'Email',
|
||||
value: email,
|
||||
validator: Validatorless.multiple(
|
||||
[
|
||||
Validatorless.email('Email inválido'),
|
||||
Validatorless.required('Email é obrigatório'),
|
||||
],
|
||||
),
|
||||
onChanged: (value) => email = value,
|
||||
),
|
||||
const SizedBox(
|
||||
height: 16.0,
|
||||
),
|
||||
NCFormField(
|
||||
label: 'Senha',
|
||||
value: password,
|
||||
obscureText: true,
|
||||
validator: Validatorless.required('Senha é obrigatória'),
|
||||
onChanged: (value) => password = value,
|
||||
),
|
||||
const SizedBox(
|
||||
height: 32.0,
|
||||
),
|
||||
ElevatedButton(
|
||||
style: ElevatedButton.styleFrom(
|
||||
backgroundColor: const Color.fromRGBO(166, 0, 249, 1),
|
||||
foregroundColor: Colors.white,
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(8),
|
||||
),
|
||||
),
|
||||
onPressed: () async {
|
||||
//await verifyLogin(formKey, store, email, password);
|
||||
},
|
||||
child: const Padding(
|
||||
padding: EdgeInsets.all(8.0),
|
||||
child: Text('Entrar', style: TextStyle(fontSize: 24)),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
/*
|
||||
Future<void> verifyLogin(GlobalKey<FormState> formKey, LoginStore store, String email, String password) async {
|
||||
processAuth(formKey, store, email, password);
|
||||
}
|
||||
|
||||
Future<bool> processAuth(GlobalKey<FormState> formKey, LoginStore store, String email, String password) async {
|
||||
Function? close;
|
||||
if (formKey.currentState!.validate()) {
|
||||
formKey.currentState!.save();
|
||||
store.email = email;
|
||||
store.password = password;
|
||||
try {
|
||||
close = context.showLoading(
|
||||
msg: '',
|
||||
bgColor: Colors.transparent,
|
||||
textSize: 20,
|
||||
);
|
||||
|
||||
await store.login();
|
||||
close();
|
||||
|
||||
if (store.isLogged) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (store.message != "") {
|
||||
SnackBarService.showSnackBar(content: store.message!, error: true);
|
||||
return false;
|
||||
}
|
||||
} catch (e) {
|
||||
close!();
|
||||
SnackBarService.showSnackBar(content: e.toString().replaceAll("Exception: ", ""), error: true);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user