import { TimePicker, Space, View, Text, Button } from 'taro-uno-ui';
import { useState } from 'react';
const TimePickerExample = () => {
const [time, setTime] = useState('');
const [timeRange, setTimeRange] = useState<string[]>([]);
const disabledHours = () => {
const currentHour = new Date().getHours();
return Array.from({ length: currentHour }, (_, i) => i);
};
const disabledMinutes = (hour: number) => {
const currentHour = new Date().getHours();
if (hour === currentHour) {
const currentMinute = new Date().getMinutes();
return Array.from({ length: currentMinute }, (_, i) => i);
}
return [];
};
return (
<View>
<Text style={{ fontSize: '20px', fontWeight: 'bold', marginBottom: '12px', display: 'block' }}>基础时间选择器</Text>
<Space direction="vertical" size="large" style={{ marginBottom: '20px', width: '100%' }}>
<TimePicker placeholder="请选择时间" />
</Space>
<Text style={{ fontSize: '20px', fontWeight: 'bold', marginBottom: '12px', display: 'block', marginTop: '20px' }}>受控模式</Text>
<Space direction="vertical" size="large" style={{ marginBottom: '20px', width: '100%' }}>
<TimePicker
value={time}
onChange={(e) => setTime(e.detail.value as string)}
placeholder="请选择时间"
/>
<Text>选中时间:{time || '未选择'}</Text>
</Space>
<Text style={{ fontSize: '20px', fontWeight: 'bold', marginBottom: '12px', display: 'block', marginTop: '20px' }}>时间范围选择器</Text>
<Space direction="vertical" size="large" style={{ marginBottom: '20px', width: '100%' }}>
<TimePicker
type="timerange"
placeholder={['开始时间', '结束时间']}
/>
</Space>
<Text style={{ fontSize: '20px', fontWeight: 'bold', marginBottom: '12px', display: 'block', marginTop: '20px' }}>受控时间范围选择器</Text>
<Space direction="vertical" size="large" style={{ marginBottom: '20px', width: '100%' }}>
<TimePicker
type="timerange"
value={timeRange}
onChange={(e) => setTimeRange(e.detail.value as string[])}
placeholder={['开始时间', '结束时间']}
/>
<Text>选中范围:{timeRange.join(' 至 ') || '未选择'}</Text>
</Space>
<Text style={{ fontSize: '20px', fontWeight: 'bold', marginBottom: '12px', display: 'block', marginTop: '20px' }}>禁用状态</Text>
<Space direction="vertical" size="large" style={{ marginBottom: '20px', width: '100%' }}>
<TimePicker disabled placeholder="禁用状态" />
</Space>
<Text style={{ fontSize: '20px', fontWeight: 'bold', marginBottom: '12px', display: 'block', marginTop: '20px' }}>带秒选择器</Text>
<Space direction="vertical" size="large" style={{ marginBottom: '20px', width: '100%' }}>
<TimePicker showSecond placeholder="带秒选择器" />
</Space>
<Text style={{ fontSize: '20px', fontWeight: 'bold', marginBottom: '12px', display: 'block', marginTop: '20px' }}>自定义步长</Text>
<Space direction="vertical" size="large" style={{ marginBottom: '20px', width: '100%' }}>
<TimePicker hourStep={2} placeholder="小时步长为2" />
<TimePicker minuteStep={5} placeholder="分钟步长为5" />
<TimePicker secondStep={10} showSecond placeholder="秒步长为10" />
</Space>
<Text style={{ fontSize: '20px', fontWeight: 'bold', marginBottom: '12px', display: 'block', marginTop: '20px' }}>禁用时间</Text>
<Space direction="vertical" size="large" style={{ marginBottom: '20px', width: '100%' }}>
<TimePicker
disabledHours={disabledHours}
disabledMinutes={disabledMinutes}
placeholder="禁用当前时间之前的时间"
/>
</Space>
<Text style={{ fontSize: '20px', fontWeight: 'bold', marginBottom: '12px', display: 'block', marginTop: '20px' }}>自定义格式</Text>
<Space direction="vertical" size="large" style={{ marginBottom: '20px', width: '100%' }}>
<TimePicker
format="HH时mm分"
placeholder="自定义格式"
/>
<TimePicker
format="HH:mm:ss"
showSecond
placeholder="带秒的自定义格式"
/>
</Space>
</View>
);
};
export default TimePickerExample;