// DateTimeInput.tsx import { MainColor } from "@/constants/color-palet"; import { GStyles } from "@/styles/global-styles"; import { Ionicons } from "@expo/vector-icons"; import DateTimePicker, { DateTimePickerEvent, } from "@react-native-community/datetimepicker"; import dayjs from "dayjs"; import React, { useState } from "react"; import { StyleProp, Text, View, ViewStyle } from "react-native"; import ClickableCustom from "../Clickable/ClickableCustom"; import TextCustom from "../Text/TextCustom"; interface DateTimeInputProps { // Main value?: DateTimePickerEvent; mode?: "date" | "time"; onChange: (selectedDate: DateTimePickerEvent) => void; maximumDate?: Date; minimumDate?: Date; // Main label?: string; required?: boolean; disabled?: boolean; iconLeft?: React.ReactNode; style?: StyleProp; borderRadius?: number; externalError?: string; internalError?: string; containerStyle?: StyleProp; } const DateTimeInput_IOS: React.FC = ({ // Main value, mode, onChange, maximumDate, minimumDate, // Main label, required, disabled, iconLeft, style, borderRadius = 8, externalError, internalError, containerStyle, }) => { const [show, setShow] = useState(false); const [selectedDate, setSelectedDate] = useState( value as any ); const handleConfirm = (event: any, date?: Date) => { if (event.type === "set" && date !== undefined) { setSelectedDate(date); onChange(date as any); } }; const handlePress = () => { setShow(!show); }; return ( <> {label && ( {label} {required && *} )} {selectedDate ? ( {dayjs(selectedDate).format("DD-MM-YYYY HH:mm")} ) : ( "Pilih tanggal" )} {externalError || (internalError && ( {externalError || internalError} ))} {show && ( <> setShow(false)} /> )} ); }; export default DateTimeInput_IOS;