fix bug chọn thời gian khởi hành / kết thúc ( chuyến đi )

This commit is contained in:
2025-12-31 15:48:44 +07:00
parent 88bdaeb3a6
commit 940e108e75

View File

@@ -348,8 +348,8 @@ export default function TripDurationPicker({
handleOpenEndTimePicker handleOpenEndTimePicker
)} )}
{/* Unified Picker Modal */} {/* iOS: Modal wrapper with spinner */}
{activePicker && ( {activePicker && Platform.OS === "ios" && (
<Modal transparent animationType="fade" visible={!!activePicker}> <Modal transparent animationType="fade" visible={!!activePicker}>
<View style={styles.modalOverlay}> <View style={styles.modalOverlay}>
<View <View
@@ -373,7 +373,7 @@ export default function TripDurationPicker({
<DateTimePicker <DateTimePicker
value={isStartPicker ? tempStartDate : tempEndDate} value={isStartPicker ? tempStartDate : tempEndDate}
mode={isTimePicker ? "time" : "date"} mode={isTimePicker ? "time" : "date"}
display={Platform.OS === "ios" ? "spinner" : "default"} display="spinner"
onChange={ onChange={
isStartPicker isStartPicker
? handleStartPickerChange ? handleStartPickerChange
@@ -385,8 +385,10 @@ export default function TripDurationPicker({
: undefined : undefined
} }
minimumDate={ minimumDate={
!isStartPicker && !isTimePicker !isTimePicker
? startDate || undefined ? isStartPicker
? new Date()
: startDate || new Date()
: undefined : undefined
} }
themeVariant={colorScheme} themeVariant={colorScheme}
@@ -397,6 +399,28 @@ export default function TripDurationPicker({
</View> </View>
</Modal> </Modal>
)} )}
{/* Android: Native dialog (no Modal wrapper needed) */}
{activePicker && Platform.OS === "android" && (
<DateTimePicker
value={isStartPicker ? tempStartDate : tempEndDate}
mode={isTimePicker ? "time" : "date"}
display="default"
onChange={
isStartPicker ? handleStartPickerChange : handleEndPickerChange
}
maximumDate={
isStartPicker && !isTimePicker ? endDate || undefined : undefined
}
minimumDate={
!isTimePicker
? isStartPicker
? new Date()
: startDate || new Date()
: undefined
}
/>
)}
</View> </View>
); );
} }