From f5804099197f6df6d4e352dbc06f600a0f5a13ae Mon Sep 17 00:00:00 2001 From: Samuel Susla Date: Mon, 7 Oct 2019 10:33:25 -0700 Subject: [PATCH] Add command to set date on RCTDatePickerManager Summary: We are moving away from setNativeProps, this adds necessary method on native to leverage commands API Reviewed By: shergin Differential Revision: D17787877 fbshipit-source-id: 8f06cdd85c96bce4ea9bb7a8cd5f6c1a1d68b20a --- React/Views/RCTDatePickerManager.m | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/React/Views/RCTDatePickerManager.m b/React/Views/RCTDatePickerManager.m index da94b210536..7d366d109a9 100644 --- a/React/Views/RCTDatePickerManager.m +++ b/React/Views/RCTDatePickerManager.m @@ -11,6 +11,7 @@ #import "RCTDatePicker.h" #import "RCTEventDispatcher.h" #import "UIView+React.h" +#import @implementation RCTConvert(UIDatePicker) @@ -41,4 +42,22 @@ RCT_EXPORT_VIEW_PROPERTY(onChange, RCTBubblingEventBlock) RCT_REMAP_VIEW_PROPERTY(mode, datePickerMode, UIDatePickerMode) RCT_REMAP_VIEW_PROPERTY(timeZoneOffsetInMinutes, timeZone, NSTimeZone) +RCT_EXPORT_METHOD(setNativeDate : (nonnull NSNumber *)viewTag toDate : (NSDate *)date) +{ + [self.bridge.uiManager addUIBlock:^(RCTUIManager *uiManager, NSDictionary *viewRegistry) { + UIView *view = viewRegistry[viewTag]; + + if ([view isKindOfClass:[RCTDatePicker class]]) { + [(RCTDatePicker *)view setDate:date]; + } else { + UIView *subview = view.subviews.firstObject; + if ([subview isKindOfClass:[RCTDatePicker class]]) { + [(RCTDatePicker *)subview setDate:date]; + } else { + RCTLogError(@"view type must be RCTPicker"); + } + } + }]; +} + @end