mirror of
https://github.com/status-im/react-native.git
synced 2025-01-16 12:34:17 +00:00
cb9b1f7b29
- [ReactNative] Oss RCTSlider | Tadeu Zagallo - [ReactNative] Oss RCTSwitch | Tadeu Zagallo - [ReactNative] Remove ImageSourcePropType | Christopher Chedeau - [ReactNative] s/Image.sourcePropType/Image.propTypes.source/ | Christopher Chedeau - [ReactNative] s/Text.stylePropType/Text.propTypes.style/ | Christopher Chedeau - [ReactNative] s/View.stylePropType/View.propTypes.style/ | Christopher Chedeau - [ReactNative] Remove nativePropTypes | Christopher Chedeau - [ReactNative] Inline ScrollViewPropTypes | Christopher Chedeau - [ReactNative] Unify ScrollView.android and ScrollView.ios | Christopher Chedeau - [ReactNative] Move around and reformat comments for the documentation | Christopher Chedeau - Improved Geolocation API | Nick Lockwood - [React Native] Move copyProperties and mergeHelpers to github dir | Ben Alpert - Fixed some misspellings that are propagating through our code | Skotch Vail - [ReactNative] OSS DatePicker | Spencer Ahrens - [React Native] Update core modules for React 0.13 | Ben Alpert - [React Native] Update React to v0.13.0-rc2 | Ben Alpert - [react-packager] onchange endpoint that informs of changes | Amjad Masad - [react-packager] dev option needs to default to true for backwards compat | Amjad Masad
52 lines
1.3 KiB
Objective-C
52 lines
1.3 KiB
Objective-C
// Copyright 2004-present Facebook. All Rights Reserved.
|
|
|
|
#import "RCTDatePickerManager.h"
|
|
|
|
#import "RCTBridge.h"
|
|
#import "RCTConvert.h"
|
|
#import "RCTEventDispatcher.h"
|
|
#import "UIView+ReactKit.h"
|
|
|
|
@implementation RCTDatePickerManager
|
|
|
|
- (UIView *)view
|
|
{
|
|
UIDatePicker *picker = [[UIDatePicker alloc] init];
|
|
[picker addTarget:self
|
|
action:@selector(onChange:)
|
|
forControlEvents:UIControlEventValueChanged];
|
|
return picker;
|
|
}
|
|
|
|
RCT_EXPORT_VIEW_PROPERTY(date)
|
|
RCT_EXPORT_VIEW_PROPERTY(minimumDate)
|
|
RCT_EXPORT_VIEW_PROPERTY(maximumDate)
|
|
RCT_EXPORT_VIEW_PROPERTY(minuteInterval)
|
|
RCT_REMAP_VIEW_PROPERTY(mode, datePickerMode)
|
|
RCT_REMAP_VIEW_PROPERTY(timeZoneOffsetInMinutes, timeZone)
|
|
|
|
- (void)onChange:(UIDatePicker *)sender
|
|
{
|
|
NSDictionary *event = @{
|
|
@"target": sender.reactTag,
|
|
@"timestamp": @([sender.date timeIntervalSince1970] * 1000.0)
|
|
};
|
|
[self.bridge.eventDispatcher sendInputEventWithName:@"topChange" body:event];
|
|
}
|
|
|
|
- (NSDictionary *)constantsToExport
|
|
{
|
|
UIDatePicker *dp = [[UIDatePicker alloc] init];
|
|
return @{
|
|
@"ComponentHeight": @(CGRectGetHeight(dp.frame)),
|
|
@"ComponentWidth": @(CGRectGetWidth(dp.frame)),
|
|
@"DatePickerModes": @{
|
|
@"time": @(UIDatePickerModeTime),
|
|
@"date": @(UIDatePickerModeDate),
|
|
@"datetime": @(UIDatePickerModeDateAndTime),
|
|
}
|
|
};
|
|
}
|
|
|
|
@end
|