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

Recent Posts

What is a QR Code And How to Create One

QR codes have evolved from a niche tracking technology to an indispensable digital connector, seamlessly…

1 week ago

Will AI Replace Software Developers?

Artificial Intelligence (AI) has made remarkable progress in recent years, transforming industries such as healthcare,…

2 weeks ago

Can Tech Really Solve Climate Change—Or Is It Just Greenwashing?

Climate change is one of the most pressing challenges of our time, with rising global…

3 weeks ago

The Inevitable Rise of Transhumanism

In the last few decades, technology has become so embedded in our daily lives that…

3 weeks ago

Drones 101: What They Are & How They Work

In recent years, drones have become more than just cool gadgets or tools for tech…

4 weeks ago

React Native vs. Flutter: Which is Best to Build Mobile Apps in Abuja?

Looking to build mobile apps in Abuja? Choosing the right framework is crucial for performance,…

1 month ago