date-picker.js 1020 Bytes
Newer Older
xwenliang's avatar
xwenliang committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
'use strict';

import React from 'react-native';
import Picker from 'react-native-picker';

function createDateData(){
	let date = {};
	for(let i=1950;i<2050;i++){
		let month = {};
		for(let j = 1;j<13;j++){
			let day = [];
			if(j === 2){
				for(let k=1;k<29;k++){
					day.push(k+'');
				}
			}
			else if(j in {1:1, 3:1, 5:1, 7:1, 8:1, 10:1, 12:1}){
				for(let k=1;k<32;k++){
					day.push(k+'');
				}
			}
			else{
				for(let k=1;k<31;k++){
					day.push(k+'');
				}
			}
			month[j+''] = day;
		}
		date[i+''] = month;
	}
	return date;
};

export default class DatePicker extends React.Component {

	toggle(){
		this.picker.toggle();
	}

	render(){
		return (
			<Picker
				ref={picker => this.picker = picker}
				pickerHeight={300}
				showDuration={300}
				pickerData={this.props.pickerData || createDateData()}
				selectedValue={this.props.selectedValue}
				onPickerDone={(pickedValue) => {
					this.props.onPickerDone && this.props.onPickerDone(pickedValue);
				}}
			/>
		);
	}
};