tm-rnkit-actionsheet-picker
Version:
React Native ActionSheetPicker component for iOS + Android
78 lines (70 loc) • 2.18 kB
JavaScript
/* @flow */
/**
* datePicker.js
*
* @author SimMan (liwei0990#gmail.com)
* @Time at 2016-12-01 15:04:33
* Copyright 2011-2016 RNKit.io, Inc.
*/
;
import {
NativeModules,
processColor,
NativeEventEmitter
} from 'react-native';
const { RNKitASDatePicker } = NativeModules;
const nativeEventEmitter = new NativeEventEmitter(RNKitASDatePicker);
let listener = null;
const datePickerDefaultArgs = {
titleText: '选择时间',
titleTextColor: '#393939',
doneText: '确定',
doneTextColor: '#269ff7',
cancelText: '取消',
cancelTextColor: '#269ff7',
minimumDate: '1900-01-01 00:00:00',
maximumDate: '2222-12-12 23:59:59',
datePickerMode: 'datetime',
yearText: '年',
monthText: '月',
dayText: '日',
hoursText: '时',
minutesText: '分',
secondsText: '秒'
};
let DatePicker = {
show: (args) => {
const options = {...datePickerDefaultArgs, ...args,};
try {
RNKitASDatePicker.showWithArgs({
...options,
titleTextColor: processColor(options.titleTextColor),
doneTextColor: processColor(options.doneTextColor),
cancelTextColor: processColor(options.cancelTextColor),
wheelBgColor:processColor(options.wheelBgColor),
titleBgColor:processColor(options.titleBgColor),
outTextColor:processColor(options.outTextColor),
centerTextColor:processColor(options.centerTextColor),
dividerColor:processColor(options.dividerColor),
shadeBgColor:processColor(options.shadeBgColor),
}, (resp) => {
if (resp.type === 'done') {
options.onPickerConfirm && options.onPickerConfirm(resp.selectedDate);
} else {
options.onPickerCancel && options.onPickerCancel();
}
});
listener && listener.remove();
listener = nativeEventEmitter.addListener('DatePickerEvent', event => {
options.onPickerDidSelect && options.onPickerDidSelect(event.selectedDate);
});
}
catch (e) {
console.log(e);
listener && listener.remove();
options.onPickerCancel && options.onPickerCancel();
return;
}
}
};
export default DatePicker;