import React, { useState } from 'react'; import { View, Text, Modal, TouchableOpacity, TextInput, ScrollView } from 'react-native'; import DateTimePicker, { DateType, useDefaultStyles, useDefaultClassNames } from 'react-native-ui-datepicker'; import { PermitType } from '@/types/types'; import { X } from 'lucide-react-native'; import { TimePickerModal } from './TimePickerModal'; interface RequestPermitModalProps { visible: boolean; onClose: () => void; onSubmit: (data: any) => void; } export default function RequestPermitModal({ visible, onClose, onSubmit }: RequestPermitModalProps) { const defaultStyles = useDefaultStyles(); const [type, setType] = useState('Ferie'); const [date, setDate] = useState(); const [range, setRange] = useState<{ startDate: DateType; endDate: DateType; }>({ startDate: undefined, endDate: undefined }); const [showStartPicker, setShowStartPicker] = useState(false); const [showEndPicker, setShowEndPicker] = useState(false); const [startTime, setStartTime] = useState(''); const [endTime, setEndTime] = useState(''); return ( {/* Header Modale */} Nuova Richiesta {/* Tipologia */} Tipologia Assenza {(['Ferie', 'Permesso', 'Malattia'] as PermitType[]).map((t) => ( setType(t)} className={`flex-1 py-4 rounded-xl border-2 items-center justify-center ${type === t ? 'border-[#099499] bg-teal-50' : 'border-gray-100 bg-white' }`} > {t} ))} {/* Date Selection */} {type !== 'Permesso' ? ( setRange(params)} timeZone='Europe/Rome' locale='it' styles={{ ...defaultStyles, selected: { backgroundColor: '#099499' } }} /> ) : ( setDate(date)} timeZone='Europe/Rome' locale='it' styles={{ ...defaultStyles, selected: { backgroundColor: '#099499' } }} /> Dalle Ore setShowStartPicker(true)}> Alle Ore setShowEndPicker(true)}> )} setStartTime(time)} onClose={() => setShowStartPicker(false)} /> setEndTime(time)} onClose={() => setShowEndPicker(false)} /> { onSubmit({ type, date, range, startTime, endTime }); onClose(); }} className="w-full py-4 bg-[#099499] rounded-2xl shadow-lg active:scale-[0.98]" > Invia Richiesta { console.log("Reset pressed"); onClose(); // TODO: deselect dates from calendar }} className="mt-2 bg-gray-200 rounded-xl py-4 flex-row justify-center items-center active:bg-gray-300" > Annulla Richiesta ); };