From 4aee168d3235f8fbf6e77416c148cbb5d0978b2e Mon Sep 17 00:00:00 2001 From: Henning Hall Date: Sat, 22 Mar 2025 12:20:19 +0100 Subject: [PATCH] reset --- ios/RNDatePickerManager.mm | 39 +++++++++++++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/ios/RNDatePickerManager.mm b/ios/RNDatePickerManager.mm index c26b60e2..e5e331be 100644 --- a/ios/RNDatePickerManager.mm +++ b/ios/RNDatePickerManager.mm @@ -30,16 +30,49 @@ @implementation RNDatePickerManager // Keep: Required for RN built in Event Emitter Calls. } +- (NSDate *)convertToNSDate:(id)input { + if (!input) return nil; + std::string isoString = [input UTF8String]; + NSString *nsString = [NSString stringWithUTF8String:isoString.c_str()]; + NSISO8601DateFormatter *isoFormatter = [[NSISO8601DateFormatter alloc] init]; + isoFormatter.formatOptions = NSISO8601DateFormatWithInternetDateTime | NSISO8601DateFormatWithFractionalSeconds; + NSDate *date = [isoFormatter dateFromString:nsString]; + return date; +} + - (UIView *)view { return [RNDatePicker new]; } RCT_EXPORT_VIEW_PROPERTY(text, NSString) -RCT_EXPORT_VIEW_PROPERTY(date, NSString) + +RCT_CUSTOM_VIEW_PROPERTY(date, id, RNDatePicker) +{ + NSDate *date = [self convertToNSDate:json]; + if (date) { + [(RNDatePicker *)view setDate:date]; + } +} + RCT_EXPORT_VIEW_PROPERTY(locale, NSLocale) -RCT_EXPORT_VIEW_PROPERTY(minimumDate, NSString) -RCT_EXPORT_VIEW_PROPERTY(maximumDate, NSString) + +RCT_CUSTOM_VIEW_PROPERTY(minimumDate, id, RNDatePicker) +{ + NSDate *date = [self convertToNSDate:json]; + if (date) { + [(RNDatePicker *)view setMinimumDate:date]; + } +} + +RCT_CUSTOM_VIEW_PROPERTY(maximumDate, id, RNDatePicker) +{ + NSDate *date = [self convertToNSDate:json]; + if (date) { + [(RNDatePicker *)view setMaximumDate:date]; + } +} + RCT_EXPORT_VIEW_PROPERTY(minuteInterval, NSInteger) RCT_EXPORT_VIEW_PROPERTY(onChange, RCTBubblingEventBlock) RCT_REMAP_VIEW_PROPERTY(mode, datePickerMode, UIDatePickerMode)