react native

React Native Toggle Password Visibility

Professionally built mobile app templates to kickstart your project

The toggle password visibility helps for a good user experience and lets the user see and confirm what they are typing.

And in most cases, it can even completely eliminate the need for a confirm password field.

Why The Confirm Password Field is Useless

So let’s get into it.

Step 1:

Download the eye-close and eye-open icon from Flaticons here.

Step 2:

Set the toggle state for the password visibility in the constructor and write the functions

constructor(props){
super(props);
this.state = {
 hidePassword: true
}
}

//Toggle password visibility
managePasswordVisibility = () => {
    this.setState({hidePassword: !this.state.hidePassword});
  };

Step 3:

Next, import these downloaded icons to your project. Also import TextInput from React Native

<View style={[styles.container, {marginBottom: 18}]}>
                <TextInput
                  style={styles.inputFlex}
                  secureTextEntry={this.state.hidePassword}
                  autoCompleteType="password"
                  autoCapitalize="none"
                  autoCorrect={false}
                  returnKeyType="send"
                  onChangeText={(UserPassword) =>        this.setState({UserPassword})}
                />
                <TouchableOpacity
                  activeOpacity={0.8}
                  style={styles.visibilityBtn}
                  onPress={this.managePasswordVisibility}>
                  <Image
                    source={
                      this.state.hidePassword
                        ? require('../assets/images/show.png')
                        : require('../assets/images/hide.png')
                    }
                    style={styles.btnImage}
                  />
                </TouchableOpacity>
              </View>
            </View>

Step 3:

Finally, we’ll add some styling

const styles = StyleSheet.create({

container: {
flex: 1,
    flexDirection: 'row',
    flexWrap: 'nowrap',
    marginTop: 10,
  },
inputFlex: {
    alignSelf: 'stretch',
    width: '100%',
    padding: 0,
    backgroundColor: '#ddd'
  },
visibilityBtn: {
    position: 'absolute',
    right: 9,
    height: 25,
    width: 25,
    padding: 0,
    marginTop: 21,
  },

})

Full Code Here:

import { Component }, React from 'react';
import { View, Text, TextInput, TouchableOpacity, Stylesheet } from 'react-native';


class App extends Component {

constructor(props){
super(props);
this.state = {
 hidePassword: true
}
}

 //Toggle password visibility
 managePasswordVisibility = () => {
    this.setState({hidePassword: !this.state.hidePassword});
  };

render(){
return(
<View style={[styles.container, {marginBottom: 18}]}>
                <TextInput
                  style={styles.inputFlex}
                  secureTextEntry={this.state.hidePassword}
                  autoCompleteType="password"
                  autoCapitalize="none"
                  autoCorrect={false}
                  returnKeyType="send"
                  onChangeText={(UserPassword) =>        this.setState({UserPassword})}
                />
                <TouchableOpacity
                  activeOpacity={0.8}
                  style={styles.visibilityBtn}
                  onPress={this.managePasswordVisibility}>
                  <Image
                    source={
                      this.state.hidePassword
                        ? require('../assets/images/show.png')
                        : require('../assets/images/hide.png')
                    }
                    style={styles.btnImage}
                  />
                </TouchableOpacity>
              </View>
            </View>

)

}

}

const styles = StyleSheet.create({

container: {
flex: 1,
    flexDirection: 'row',
    flexWrap: 'nowrap',
    marginTop: 10,
  },
inputFlex: {
    alignSelf: 'stretch',
    width: '100%',
    padding: 0,
    backgroundColor: '#ddd'
  },
visibilityBtn: {
    position: 'absolute',
    right: 9,
    height: 25,
    width: 25,
    padding: 0,
    marginTop: 21,
  },

})

export default App;

Conclusion

There we have it, our React Native toggle password implementation in our software application. Feel free to modify the code to suit your own project.

Let me know what you think in the comments!

Toggle Password Visibility With Android Studio

codeflare

Latest tech news and coding tips.

Share
Published by
codeflare

Recent Posts

Backpressure in Node.js

Backpressure is a flow-control mechanism that prevents a fast data producer from overwhelming a slower data…

3 days ago

JavaScript Collections

JavaScript collections are data structures used to store, organize, retrieve, and manipulate groups of values. Choosing…

3 days ago

Context Poisoning Explained

Context poisoning is a technique where an attacker deliberately places misleading, malicious, or irrelevant information into…

7 days ago

Common React Errors

React makes building user interfaces easier, but certain errors appear repeatedly, especially when working with…

2 weeks ago

C Programming Cheat Sheet

The C programming language is a foundational, general-purpose computer programming language created by Dennis Ritchie at Bell Labs in 1972. Originally developed to…

2 weeks ago

Homebrew Tutorial

What Is Homebrew? Homebrew is a package manager for macOS and Linux that makes it easy to…

3 weeks ago