gbclient/src/dashboard/components/DateRangePicker.tsx

64 lines
1.8 KiB
TypeScript
Raw Normal View History

import React, { useState } from 'react';
import { View, Text, TouchableOpacity, StyleSheet } from 'react-native';
import DateTimePicker from '@react-native-community/datetimepicker';
export function CalendarDateRangePicker() {
const [dateRange, setDateRange] = useState({ startDate: new Date(), endDate: new Date() });
const [showStartPicker, setShowStartPicker] = useState(false);
const [showEndPicker, setShowEndPicker] = useState(false);
const onChangeStart = (event, selectedDate) => {
setShowStartPicker(false);
if (selectedDate) {
setDateRange(prev => ({ ...prev, startDate: selectedDate }));
}
};
const onChangeEnd = (event, selectedDate) => {
setShowEndPicker(false);
if (selectedDate) {
setDateRange(prev => ({ ...prev, endDate: selectedDate }));
}
};
return (
<View style={styles.container}>
<TouchableOpacity onPress={() => setShowStartPicker(true)} style={styles.button}>
<Text>Start: {dateRange.startDate.toLocaleDateString()}</Text>
</TouchableOpacity>
<TouchableOpacity onPress={() => setShowEndPicker(true)} style={styles.button}>
<Text>End: {dateRange.endDate.toLocaleDateString()}</Text>
</TouchableOpacity>
{showStartPicker && (
<DateTimePicker
value={dateRange.startDate}
mode="date"
display="default"
onChange={onChangeStart}
/>
)}
{showEndPicker && (
<DateTimePicker
value={dateRange.endDate}
mode="date"
display="default"
onChange={onChangeEnd}
/>
)}
</View>
);
}
const styles = StyleSheet.create({
container: {
flexDirection: 'row',
justifyContent: 'space-between',
marginVertical: 10,
},
button: {
padding: 10,
backgroundColor: '#f0f0f0',
borderRadius: 5,
},
});