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.
Download the eye-close and eye-open icon from Flaticons here.
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});
};
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>
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,
},
})
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;
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
Latest tech news and coding tips.
The Cross-Platform ImperativeLet's face it: building separate iOS and Android apps wastes resources. React Native…
We live in an age of infinite distraction and overwhelming ambition. Grand goals shimmer on…
Reusable components are modular UI building blocks designed for versatility. Instead of writing duplicate code…
What is a Palindrome? A palindrome is any word, phrase, number, or sequence that reads…
Facial recognition technology is rapidly changing how we interact with devices, access services, and enhance…
Move over ChatGPT, there's a new, significantly upgraded player causing a stir. xAI, Elon Musk's…