From b84fe9a9c4c18a3f4e957f76ead34403c4316f76 Mon Sep 17 00:00:00 2001 From: omagdy7 Date: Wed, 20 Dec 2023 19:40:11 +0200 Subject: Added a simple Login and SignUp page for the web driver app --- lib/login.dart | 161 --------------------------------------------------------- 1 file changed, 161 deletions(-) delete mode 100644 lib/login.dart (limited to 'lib/login.dart') diff --git a/lib/login.dart b/lib/login.dart deleted file mode 100644 index b210650..0000000 --- a/lib/login.dart +++ /dev/null @@ -1,161 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:fluttertoast/fluttertoast.dart'; -import 'package:firebase_auth/firebase_auth.dart'; - -class LoginPage extends StatefulWidget { - const LoginPage({ - Key? key, - }) : super(key: key); - - @override - State createState() => _LoginPageState(); -} - -class _LoginPageState extends State { - final GlobalKey _formKey = GlobalKey(); - - final FocusNode _focusNodePassword = FocusNode(); - final TextEditingController _controllerUsername = TextEditingController(); - final TextEditingController _controllerPassword = TextEditingController(); - - bool _obscurePassword = true; - - @override - Widget build(BuildContext context) { - return Scaffold( - backgroundColor: Colors.grey[300], - body: Form( - key: _formKey, - child: SingleChildScrollView( - padding: const EdgeInsets.all(30.0), - child: Column( - children: [ - Image.asset( - "assets/logo.png", - height: 190, - ), - Text( - "Welcome back", - style: Theme.of(context).textTheme.headlineMedium, - ), - Text( - "Login to your account", - style: Theme.of(context).textTheme.bodySmall, - ), - const SizedBox(height: 40), - TextFormField( - controller: _controllerUsername, - keyboardType: TextInputType.name, - decoration: InputDecoration( - labelText: "Email", - prefixIcon: const Icon(Icons.email_outlined), - border: OutlineInputBorder( - borderRadius: BorderRadius.circular(10), - ), - enabledBorder: OutlineInputBorder( - borderRadius: BorderRadius.circular(10), - ), - ), - onEditingComplete: () => _focusNodePassword.requestFocus(), - validator: (String? value) { - if (value == null || value.isEmpty) { - return "Please enter username."; - } - - return null; - }, - ), - const SizedBox(height: 10), - TextFormField( - controller: _controllerPassword, - focusNode: _focusNodePassword, - obscureText: _obscurePassword, - keyboardType: TextInputType.visiblePassword, - decoration: InputDecoration( - labelText: "Password", - prefixIcon: const Icon(Icons.password_outlined), - suffixIcon: IconButton( - onPressed: () { - setState(() { - _obscurePassword = !_obscurePassword; - }); - }, - icon: _obscurePassword - ? const Icon(Icons.visibility_outlined) - : const Icon(Icons.visibility_off_outlined)), - border: OutlineInputBorder( - borderRadius: BorderRadius.circular(10), - ), - enabledBorder: OutlineInputBorder( - borderRadius: BorderRadius.circular(10), - ), - ), - validator: (String? value) { - if (value == null || value.isEmpty) { - return "Please enter password."; - } - - return null; - }, - ), - const SizedBox(height: 60), - Column( - children: [ - ElevatedButton( - style: ElevatedButton.styleFrom( - minimumSize: const Size.fromHeight(50), - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(20), - ), - backgroundColor: Color(0xFF355291), - ), - onPressed: () async { - if (_formKey.currentState?.validate() ?? false) { - try { - await FirebaseAuth.instance - .signInWithEmailAndPassword( - email: _controllerUsername.text.trim(), - password: _controllerPassword.text.trim()) - .then((value) => - Navigator.pushNamedAndRemoveUntil( - context, '/', (route) => false)); - } on FirebaseAuthException catch (e) { - Fluttertoast.showToast( - msg: e.message.toString(), - gravity: ToastGravity.SNACKBAR); - } - } - }, - child: const Text("Login"), - ), - Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - const Text("Don't have an account?"), - TextButton( - onPressed: () { - _formKey.currentState?.reset(); - Navigator.pushNamedAndRemoveUntil( - context, "/signup", (route) => false); - }, - child: const Text("Signup"), - ), - ], - ), - ], - ), - ], - ), - ), - ), - ); - } - - @override - void dispose() { - _focusNodePassword.dispose(); - _controllerUsername.dispose(); - _controllerPassword.dispose(); - super.dispose(); - } -} -- cgit v1.2.3