import * as React from 'react';
import { Modal, StyleSheet, Text, SafeAreaView, View, TouchableOpacity, Platform } from "react-native";
import styled from 'styled-components/native';
import AntDesignIcon from 'react-native-vector-icons/AntDesign'
import { Toast } from '../../../../../src/components/shared/OToast'
interface Props {
open?: boolean;
title?: string;
children?: any;
onAccept?: any;
onCancel?: any;
onClose?: any;
style?: any;
acceptText?: string;
cancelText?: string;
isTransparent?: boolean;
hideCloseDefault?: boolean;
entireModal?: boolean;
customClose?: boolean;
titleSectionStyle?: any;
isNotDecoration?: boolean;
styleCloseButton?: any,
isAvoidKeyBoardView?: boolean;
styleContainerCloseButton?: any;
showToastInsideModal?: boolean;
}
const KeyboardView = styled.KeyboardAvoidingView`
flex-grow: 1;
flex-shrink: 1;
`;
const OModal = (props: Props): React.ReactElement => {
const {
open,
title,
children,
onAccept,
onCancel,
onClose,
acceptText,
cancelText,
isTransparent,
hideCloseDefault,
entireModal,
customClose,
titleSectionStyle,
isNotDecoration,
style,
styleCloseButton,
styleContainerCloseButton,
isAvoidKeyBoardView,
showToastInsideModal
} = props
const renderSafeAreaView = () => (
{!entireModal ? (
{title || ''}
{children}
) :
{!customClose && (
{title || ''}
)}
{children}
}
)
return (
onClose && onClose()}
style={{ height: '100%', flex: 1, position: 'absolute', ...style, zIndex: 9999 }}
>
{showToastInsideModal && (
)}
{isAvoidKeyBoardView ? (
{renderSafeAreaView()}
) : (
renderSafeAreaView()
)}
);
};
const styles = StyleSheet.create({
container: {
flex: 1,
},
centeredView: {
justifyContent: "center",
alignItems: 'flex-start',
position: 'relative',
width: '100%',
},
titleSection: {
width: '100%',
flex: 1,
justifyContent: 'space-between',
alignItems: 'flex-start',
paddingLeft: 20,
paddingRight: 20,
marginBottom: 40
},
cancelBtn: {
// position: 'absolute',
// left: 0,
// margin: 15,
// zIndex: 10000
},
modalText: {
marginTop: 15,
fontSize: 20,
lineHeight: 30,
fontWeight: '600',
textAlign: "center",
zIndex: 10
},
wrapperIcon: {
overflow: 'hidden',
backgroundColor: 'transparent',
width: 35,
height: 35,
marginStart: -9,
marginTop: 12,
alignItems: 'center',
justifyContent: 'center',
zIndex: 99999
},
modalView: {
margin: 20,
backgroundColor: "white",
borderRadius: 20,
padding: 35,
alignItems: "center",
shadowColor: "#000",
shadowOffset: {
width: 0,
height: 2
},
shadowOpacity: 0.25,
shadowRadius: 4,
elevation: 5
},
button: {
borderRadius: 20,
padding: 10,
elevation: 2
},
buttonOpen: {
backgroundColor: "#F194FF",
},
buttonClose: {
backgroundColor: "#2196F3",
},
textStyle: {
color: "white",
fontWeight: "bold",
textAlign: "center"
},
});
export default OModal;