import Styles from "@/constants/Styles"; import { MaterialIcons } from "@expo/vector-icons"; import { Dimensions, KeyboardAvoidingView, Platform, Pressable, View } from "react-native"; import Modal from 'react-native-modal'; import Text from "./Text"; type Props = { isVisible: boolean setVisible: (value: boolean) => void title?: string children: React.ReactNode animation?: 'slide' | 'none' | 'fade' height?: number backdropPressable?: boolean keyboard?: boolean } export default function DrawerBottom({ isVisible, setVisible, title, children, animation, height, backdropPressable = true, keyboard = false }: Props) { const tinggiScreen = Dimensions.get("window").height; const tinggiInput = height != undefined ? height : 25 const tinggiFix = tinggiScreen * tinggiInput / 100; return ( setVisible(false)} swipeDirection="down" hideModalContentWhileAnimating={true} onBackdropPress={() => { setVisible(!backdropPressable) }} style={[{ justifyContent: 'flex-end', margin: 0 }]} animationOutTiming={500} animationInTiming={500} backdropTransitionInTiming={500} backdropTransitionOutTiming={500} useNativeDriverForBackdrop={true} > { keyboard ? {title} setVisible(false)}> {children} : {title} setVisible(false)}> {children} } ) }