import React, { useState } from "react";
import { View, StyleSheet, Button, TextInput, Text, TouchableWithoutFeedback, Modal, FlatList, Platform } from "react-native";
import { MaterialCommunityIcons } from "@expo/vector-icons";
import DateTimePicker from "@react-native-community/datetimepicker";
import moment from "moment";
function MyDatePicker({ icon, placeholder, onChange, date }) {
const [modalVisible, setModalVisible] = useState(false);
const [showPicker, setShowPicker] = useState(false);
const [newdate, setNewDate] = useState(date);
const showDatePicker = () => {
if (Platform.OS === "ios") {
setModalVisible(true);
} else {
setShowPicker(true);
}
};
const onOK = (e, d) => {
setNewDate(d);
if (Platform.OS === "android") {
setShowPicker(false);
}
onChange(e, d);
};
return (
<>
<TouchableWithoutFeedback onPress={() => showDatePicker()}>
<View style={styles.container}>
{icon && }
<MyText style={styles.text}>{newdate ? moment(newdate).format("YYYY-MM-DD") : placeholder}
<MaterialCommunityIcons name="chevron-down" size={25} color={myColors.medium} />
</View>
</TouchableWithoutFeedback>
<Modal style={styles.modal} visible={modalVisible} animationType="slide" transparent={true}>
<View style={styles.modalView}>
<View style={styles.modalBottom}>
<Button title="close" onPress={() => setModalVisible(false)}>
<DateTimePicker value={newdate} mode="date" is24Hour={true} display="default" onChange={onOK} locale="zh-TW" />
</View>
</View>
</Modal>
{showPicker && <DateTimePicker value={newdate} mode="date" is24Hour={true} display="default" onChange={onOK} locale="zh-TW" />}
</>
);
}
const styles = StyleSheet.create({
container: {
backgroundColor: "white",
borderRadius: 5,
flexDirection: "row",
padding: 10,
marginHorizontal: 10,
marginTop: 10,
alignSelf: "center",
alignItems: "center",
},
icon: {
marginRight: 10,
},
text: {
flex: 1,
},
modalView: {
backgroundColor: "rgba(0,0,0,0.5)",
flex: 1,
},
modalBottom: {
height: "50%",
marginTop: "auto",
backgroundColor: "white",
},
});
export default MyDatePicker;