import * as React from 'react' import { Modal, StyleSheet, TouchableWithoutFeedback, useWindowDimensions, View, Platform, StatusBar, } from 'react-native' import { useTheme } from 'react-native-paper' import DatePickerModalContent, { DatePickerModalContentMultiProps, DatePickerModalContentRangeProps, DatePickerModalContentSingleProps, } from './DatePickerModalContent' import { useHeaderBackgroundColor, useHeaderColorIsLight } from '../utils' import { useSafeAreaInsets } from 'react-native-safe-area-context' interface DatePickerModalProps { visible: boolean animationType?: 'slide' | 'fade' | 'none' disableStatusBar?: boolean disableStatusBarPadding?: boolean inputEnabled?: boolean } export interface DatePickerModalSingleProps extends DatePickerModalContentSingleProps, DatePickerModalProps {} export interface DatePickerModalMultiProps extends DatePickerModalContentMultiProps, DatePickerModalProps {} export interface DatePickerModalRangeProps extends DatePickerModalContentRangeProps, DatePickerModalProps {} export function DatePickerModal( props: | DatePickerModalRangeProps | DatePickerModalSingleProps | DatePickerModalMultiProps ) { const theme = useTheme() const dimensions = useWindowDimensions() const { visible, animationType, disableStatusBar, disableStatusBarPadding, inputEnabled, ...rest } = props const animationTypeCalculated = animationType || Platform.select({ web: 'none', default: 'slide', }) const isLight = useHeaderColorIsLight() const headerBackgroundColor = useHeaderBackgroundColor() const insets = useSafeAreaInsets() return ( <> 650 ? styles.modalContentBig : null, ]} > {disableStatusBar ? null : ( )} {disableStatusBarPadding ? null : ( )} ) } const supportedOrientations: any = [ 'portrait', 'portrait-upside-down', 'landscape', 'landscape-left', 'landscape-right', ] const styles = StyleSheet.create({ modalRoot: { justifyContent: 'center', alignItems: 'center', flex: 1, }, modalBackground: { flex: 1, }, modalContent: { flex: 1, width: '100%', }, modalContentBig: { maxWidth: 600, maxHeight: 800, borderRadius: 10, width: '100%', overflow: 'hidden', }, }) export default React.memo(DatePickerModal)