Add password/show hide capability.

This commit is contained in:
Hank Grabowski 2023-01-28 15:18:18 -08:00
parent cdc0c761c3
commit af93f519d5

View file

@ -17,6 +17,7 @@ class _SignInScreenState extends State<SignInScreen> {
final formKey = GlobalKey<FormState>();
final usernameController = TextEditingController();
final passwordController = TextEditingController();
var hidePassword = true;
@override
void initState() {
@ -35,7 +36,7 @@ class _SignInScreenState extends State<SignInScreen> {
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Sign In'),
title: const Text('Sign In'),
),
body: Padding(
padding: const EdgeInsets.all(20.0),
@ -53,7 +54,7 @@ class _SignInScreenState extends State<SignInScreen> {
? null
: 'Not a valid Friendica Account Address',
decoration: InputDecoration(
prefixIcon: Icon(Icons.alternate_email),
prefixIcon: const Icon(Icons.alternate_email),
hintText: 'Username (user@example.com)',
border: OutlineInputBorder(
borderSide: BorderSide(
@ -66,10 +67,20 @@ class _SignInScreenState extends State<SignInScreen> {
),
const VerticalPadding(),
TextFormField(
obscureText: true,
obscureText: hidePassword,
controller: passwordController,
decoration: InputDecoration(
prefixIcon: Icon(Icons.password),
prefixIcon: const Icon(Icons.password),
suffixIcon: IconButton(
onPressed: () {
setState(() {
hidePassword = !hidePassword;
});
},
icon: hidePassword
? const Icon(Icons.remove_red_eye_outlined)
: const Icon(Icons.remove_red_eye),
),
hintText: 'Password',
border: OutlineInputBorder(
borderSide: BorderSide(
@ -83,7 +94,7 @@ class _SignInScreenState extends State<SignInScreen> {
const VerticalPadding(),
ElevatedButton(
onPressed: () => _signIn(context),
child: Text('Signin'),
child: const Text('Signin'),
),
],
),