GabrielTrettel
3 years ago
2 changed files with 123 additions and 14 deletions
@ -0,0 +1,96 @@ |
|||||
|
import React from "react"; |
||||
|
import { |
||||
|
Modal, |
||||
|
StyleSheet, |
||||
|
Text, |
||||
|
TouchableHighlight, |
||||
|
View, |
||||
|
} from "react-native"; |
||||
|
|
||||
|
import { MaterialCommunityIcons } from "@expo/vector-icons"; |
||||
|
import colors from "../config/colors"; |
||||
|
import { dimensions } from "../config/dimensions"; |
||||
|
import { TouchableOpacity } from "react-native-gesture-handler"; |
||||
|
|
||||
|
function Btn({ label, onPress, bgColor, txtColor }) { |
||||
|
return ( |
||||
|
<TouchableOpacity onPress={() => onPress()}> |
||||
|
<View |
||||
|
style={{ |
||||
|
paddingHorizontal: 30, |
||||
|
paddingVertical: 5, |
||||
|
backgroundColor: bgColor, |
||||
|
borderRadius: 6, |
||||
|
}} |
||||
|
> |
||||
|
<Text>{label}</Text> |
||||
|
</View> |
||||
|
</TouchableOpacity> |
||||
|
); |
||||
|
} |
||||
|
|
||||
|
export default function ConfirmationModal({ |
||||
|
show, |
||||
|
title = "", |
||||
|
description = "", |
||||
|
confirmationLabel = "", |
||||
|
declineLabel = "", |
||||
|
onConfirm = () => {}, |
||||
|
onDecline = () => {}, |
||||
|
}) { |
||||
|
console.log("show: " + show); |
||||
|
return ( |
||||
|
<Modal |
||||
|
transparent={true} |
||||
|
animationType="slide" |
||||
|
visible={show} |
||||
|
supportedOrientations={["portrait"]} |
||||
|
> |
||||
|
<View style={styles.container}> |
||||
|
<View style={{ flex: 1 }}> |
||||
|
<Text style={[styles.text, { fontSize: dimensions.text.secondary }]}> |
||||
|
{title} |
||||
|
</Text> |
||||
|
</View> |
||||
|
<Text style={styles.text}>{description}</Text> |
||||
|
<View |
||||
|
style={{ |
||||
|
flexDirection: "row", |
||||
|
justifyContent: "space-evenly", |
||||
|
marginTop: 24, |
||||
|
}} |
||||
|
> |
||||
|
<Btn |
||||
|
label={confirmationLabel} |
||||
|
onPress={onConfirm} |
||||
|
bgColor={colors.secondary} |
||||
|
/> |
||||
|
<Btn |
||||
|
label={declineLabel} |
||||
|
onPress={onDecline} |
||||
|
bgColor={colors.lightGray} |
||||
|
/> |
||||
|
</View> |
||||
|
</View> |
||||
|
</Modal> |
||||
|
); |
||||
|
} |
||||
|
|
||||
|
const styles = StyleSheet.create({ |
||||
|
container: { |
||||
|
width: "80%", |
||||
|
height: 150, |
||||
|
justifyContent: "center", |
||||
|
alignSelf: "center", |
||||
|
backgroundColor: colors.lightestGray, |
||||
|
borderColor: colors.primary, |
||||
|
borderWidth: 2, |
||||
|
borderRadius: 12, |
||||
|
padding: 12, |
||||
|
}, |
||||
|
text: { |
||||
|
fontSize: dimensions.text.default, |
||||
|
textAlign: "left", |
||||
|
fontWeight: "bold", |
||||
|
}, |
||||
|
}); |
Write
Preview
Loading…
Cancel
Save
Reference in new issue