Hi Guys, In this article, we are going to learn about Custom Dialog Box Component in React Native. Developers sometimes need to show an alert box to display the success or error message. A React Native has its own alert message but this will display the default operating system alert box and it’s very simple.
Check this article which I wrote before for React Native simple Alert dialog but if you want to display nice & awesome dialog in React native then either you have to use any third-party dependency or you have to create a custom component but it takes some time. so In this article, we will create a Nice custom dialog box component in React Native. so let’s start with an example
Contents:
- Create new project
- Create a new CustomAlert.js as a custom dialog component
- Import CustomAlert.js in Dashboard screen
- Pass props to CustomAlert.js
- Create two buttons on Dashboard to display an alert message
1. Create a new project
react-native init ProjectName
I am using my old project which I had created before. Install the following dependency to use icons.
npm install react-native-vector-icons
2. Create CustomAlert.js
Create a custom component in your component directory and paste the following source code into it.
import React, {useState} from 'react';
import {Modal, Text, View, TouchableOpacity} from 'react-native';
import MaterialIcons from 'react-native-vector-icons/MaterialIcons';
import Ionicons from 'react-native-vector-icons/Ionicons';
export default function CustomAlert({
displayMode,
displayMsg,
visibility,
dismissAlert,
}) {
return (
<View>
<Modal
visible={visibility}
animationType={'fade'}
transparent={true}
animationType="slide">
<View
style={{
flex: 1,
backgroundColor: 'rgba(52, 52, 52, 0.8)',
alignItems: 'center',
justifyContent: 'center',
}}>
<View
style={{
alignItems: 'center',
backgroundColor: 'white',
height: 200,
width: '90%',
borderWidth: 1,
borderColor: '#fff',
borderRadius: 7,
elevation: 10,
}}>
<View style={{alignItems: 'center', margin: 10}}>
{displayMode == 'success' ? (
<>
<Ionicons
name="checkmark-done-circle"
color={'green'}
size={80}
/>
</>
) : (
<>
<MaterialIcons name="cancel" color={'red'} size={80} />
</>
)}
<Text style={{fontSize: 18, marginTop: 5}}>{displayMsg}</Text>
</View>
<TouchableOpacity
activeOpacity={0.9}
onPress={() => dismissAlert(false)}
style={{
width: '95%',
borderRadius: 0,
alignItems: 'center',
justifyContent: 'center',
position: 'absolute',
backgroundColor: 'blue',
borderColor: '#ddd',
borderBottomWidth: 0,
borderRadius: 5,
bottom: 0,
marginBottom: 10,
}}>
<Text style={{color: 'white', margin: 15}}>OK</Text>
</TouchableOpacity>
</View>
</View>
</Modal>
</View>
);
}
3. Import CustomAlert.js in Dashboard
Import your custom component in your main screen inside the return method. I am using react native hooks in the functional component.
import React, {useState} from 'react';
import {StyleSheet, Text, View, TouchableOpacity, Modal} from 'react-native';
import CustomAlert from './CustomAlert';
export default function Dashboard({navigation}) {
const [showDonationSuccessPopup, setShowDonationSuccessPopup] = useState(
false,
);
const [showDonationErrPopup, setShowDonationErrPopup] = useState(
false,
);
return (
<View style={{alignItems: 'center'}}>
<Text style={{fontSize: 25, margin: 20, textAlign: 'center'}}>
React native custom alert
</Text>
<CustomAlert
displayMode={'success'}
displayMsg={'Order placed successfull'}
visibility={showDonationSuccessPopup}
dismissAlert={setShowDonationSuccessPopup}
/>
<CustomAlert
displayMode={'failed'}
displayMsg={'Failed, Please try again'}
visibility={showDonationErrPopup}
dismissAlert={setShowDonationErrPopup}
/>
<TouchableOpacity
onPress={() => setShowDonationSuccessPopup(true)}
style={{backgroundColor: 'blue', borderRadius: 5}}>
<Text style={{color: 'white', margin: 10}}>Show success alert</Text>
</TouchableOpacity>
<TouchableOpacity
onPress={() => setShowDonationErrPopup(true)}
style={{backgroundColor: 'blue', borderRadius: 5, marginTop:10}}>
<Text style={{color: 'white', margin: 10}}> Show error alert </Text>
</TouchableOpacity>
</View>
);
}
4. CustomAlert props
There are four main props that need to pass to CustomAlert component
- DisplayMode: You can display success or error alerts.
- DisplayMsg: You can pass the String message to display on the Alert box.
- Visibility: You can set a Boolean value which only use to display the Alert box.
- DismissAlert: This triggers from Alert box OK button and returns a false value and set Visibility
<CustomAlert
displayMode={'success'}
displayMsg={'Order placed successfull'}
visibility={showDonationSuccessPopup}
dismissAlert={setShowDonationSuccessPopup}
/>
<CustomAlert
displayMode={'failed'}
displayMsg={'Failed, Please try again'}
visibility={showDonationErrPopup}
dismissAlert={setShowDonationErrPopup}
/>
5. Output
Thank you 🙂 , Hope you like this article




