Skip to content

Commit a21d6bf

Browse files
committed
Add max date and min date to date picker
1 parent f68fd6c commit a21d6bf

File tree

9 files changed

+80
-20
lines changed

9 files changed

+80
-20
lines changed

RNAlertController.xcodeproj/project.pbxproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -533,7 +533,7 @@
533533
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
534534
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
535535
CODE_SIGN_STYLE = Automatic;
536-
CURRENT_PROJECT_VERSION = 680;
536+
CURRENT_PROJECT_VERSION = 681;
537537
DEVELOPMENT_TEAM = PCH85ZHVFN;
538538
INFOPLIST_FILE = "$(SRCROOT)/RNAlertControllerExample/Info.plist";
539539
IPHONEOS_DEPLOYMENT_TARGET = 12.4;
@@ -555,7 +555,7 @@
555555
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
556556
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
557557
CODE_SIGN_STYLE = Automatic;
558-
CURRENT_PROJECT_VERSION = 680;
558+
CURRENT_PROJECT_VERSION = 681;
559559
DEVELOPMENT_TEAM = PCH85ZHVFN;
560560
INFOPLIST_FILE = "$(SRCROOT)/RNAlertControllerExample/Info.plist";
561561
IPHONEOS_DEPLOYMENT_TARGET = 12.4;
@@ -702,7 +702,7 @@
702702
CLANG_ENABLE_MODULES = YES;
703703
CODE_SIGN_IDENTITY = "";
704704
CODE_SIGN_STYLE = Automatic;
705-
CURRENT_PROJECT_VERSION = 1004;
705+
CURRENT_PROJECT_VERSION = 1005;
706706
DEFINES_MODULE = YES;
707707
DEVELOPMENT_TEAM = PCH85ZHVFN;
708708
DYLIB_COMPATIBILITY_VERSION = 1;
@@ -734,7 +734,7 @@
734734
CLANG_ENABLE_MODULES = YES;
735735
CODE_SIGN_IDENTITY = "";
736736
CODE_SIGN_STYLE = Automatic;
737-
CURRENT_PROJECT_VERSION = 1004;
737+
CURRENT_PROJECT_VERSION = 1005;
738738
DEFINES_MODULE = YES;
739739
DEVELOPMENT_TEAM = PCH85ZHVFN;
740740
DYLIB_COMPATIBILITY_VERSION = 1;

RNAlertControllerExample/Controllers/OtherViewController.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,9 @@ class OtherViewController: UIViewController {
2626
@IBAction func didTapChooseDate(_ sender: UIButton) {
2727
RNAlertController(title: "Pick a date",
2828
message: "This date will be selected when you tap Done")
29-
.setDatePicker(mode: .date, date: selectedDate) { date in
29+
.setDatePicker(mode: .date,
30+
selectedDate: selectedDate,
31+
maximumDate: Date()) { date in
3032
self.selectedDate = date
3133
let formatter = DateFormatter()
3234
formatter.dateFormat = "dd MMMM yyyy"

Source/RNAlertController+API.swift

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -111,14 +111,20 @@ public extension RNAlertController {
111111
/// A date picker is placed under the message body.
112112
/// - Parameters:
113113
/// - mode: `UIDatePicker.Mode` describing the mode displayed the date picker.
114-
/// - date: `Date` to set. If passed `nil`, current date is used.
114+
/// - selectedDate: `Date` to set. If passed `nil`, current date is used.
115+
/// - maximumDate: Maximum date that a date picker can show.
116+
/// - minimumDate: Minimum date that a date picker can show.
115117
/// - selectionAction: Block to execute when date is selected.
116118
/// - Returns: `RNAlertController` instance.
117119
@discardableResult
118120
func setDatePicker(mode: UIDatePicker.Mode,
119-
date: Date? = nil,
121+
selectedDate: Date? = nil,
122+
maximumDate: Date? = nil,
123+
minimumDate: Date? = nil,
120124
selectionAction: AlertDatePickerAction? = nil) -> RNAlertController {
121-
alertDatePicker = AlertDatePicker(datePickerMode: mode, selectedDate: date)
125+
alertDatePicker = AlertDatePicker(datePickerMode: mode, selectedDate: selectedDate)
126+
alertDatePicker?.maximumDate = maximumDate
127+
alertDatePicker?.minimumDate = minimumDate
122128
alertDatePicker?.action = selectionAction
123129
return self
124130
}

docs/Classes/RNAlertController.html

Lines changed: 31 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -714,9 +714,9 @@ <h4>Return Value</h4>
714714
<li class="item">
715715
<div>
716716
<code>
717-
<a name="/c:@CM@RNAlertController@objc(cs)RNAlertController(im)setDatePickerWithMode:date:selectionAction:"></a>
718-
<a name="//apple_ref/swift/Method/setDatePicker(mode:date:selectionAction:)" class="dashAnchor"></a>
719-
<a class="token" href="#/c:@CM@RNAlertController@objc(cs)RNAlertController(im)setDatePickerWithMode:date:selectionAction:">setDatePicker(mode:date:selectionAction:)</a>
717+
<a name="/c:@CM@RNAlertController@objc(cs)RNAlertController(im)setDatePickerWithMode:selectedDate:maximumDate:minimumDate:selectionAction:"></a>
718+
<a name="//apple_ref/swift/Method/setDatePicker(mode:selectedDate:maximumDate:minimumDate:selectionAction:)" class="dashAnchor"></a>
719+
<a class="token" href="#/c:@CM@RNAlertController@objc(cs)RNAlertController(im)setDatePickerWithMode:selectedDate:maximumDate:minimumDate:selectionAction:">setDatePicker(mode:selectedDate:maximumDate:minimumDate:selectionAction:)</a>
720720
</code>
721721
</div>
722722
<div class="height-container">
@@ -735,7 +735,9 @@ <h4>Declaration</h4>
735735
<p class="aside-title">Swift</p>
736736
<pre class="highlight swift"><code><span class="kd">@discardableResult</span>
737737
<span class="kd">func</span> <span class="nf">setDatePicker</span><span class="p">(</span><span class="nv">mode</span><span class="p">:</span> <span class="kt">UIDatePicker</span><span class="o">.</span><span class="kt">Mode</span><span class="p">,</span>
738-
<span class="nv">date</span><span class="p">:</span> <span class="kt">Date</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span>
738+
<span class="nv">selectedDate</span><span class="p">:</span> <span class="kt">Date</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span>
739+
<span class="nv">maximumDate</span><span class="p">:</span> <span class="kt">Date</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span>
740+
<span class="nv">minimumDate</span><span class="p">:</span> <span class="kt">Date</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span>
739741
<span class="nv">selectionAction</span><span class="p">:</span> <span class="kt"><a href="../Typealiases.html#/s:17RNAlertController21AlertDatePickerActiona">AlertDatePickerAction</a></span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">RNAlertController</span></code></pre>
740742

741743
</div>
@@ -759,7 +761,7 @@ <h4>Parameters</h4>
759761
<tr>
760762
<td>
761763
<code>
762-
<em>date</em>
764+
<em>selectedDate</em>
763765
</code>
764766
</td>
765767
<td>
@@ -768,6 +770,30 @@ <h4>Parameters</h4>
768770
</div>
769771
</td>
770772
</tr>
773+
<tr>
774+
<td>
775+
<code>
776+
<em>maximumDate</em>
777+
</code>
778+
</td>
779+
<td>
780+
<div>
781+
<p>Maximum date that a date picker can show.</p>
782+
</div>
783+
</td>
784+
</tr>
785+
<tr>
786+
<td>
787+
<code>
788+
<em>minimumDate</em>
789+
</code>
790+
</td>
791+
<td>
792+
<div>
793+
<p>Minimum date that a date picker can show.</p>
794+
</div>
795+
</td>
796+
</tr>
771797
<tr>
772798
<td>
773799
<code>

docs/docsets/RNAlertController.docset/Contents/Resources/Documents/Classes/RNAlertController.html

Lines changed: 31 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -714,9 +714,9 @@ <h4>Return Value</h4>
714714
<li class="item">
715715
<div>
716716
<code>
717-
<a name="/c:@CM@RNAlertController@objc(cs)RNAlertController(im)setDatePickerWithMode:date:selectionAction:"></a>
718-
<a name="//apple_ref/swift/Method/setDatePicker(mode:date:selectionAction:)" class="dashAnchor"></a>
719-
<a class="token" href="#/c:@CM@RNAlertController@objc(cs)RNAlertController(im)setDatePickerWithMode:date:selectionAction:">setDatePicker(mode:date:selectionAction:)</a>
717+
<a name="/c:@CM@RNAlertController@objc(cs)RNAlertController(im)setDatePickerWithMode:selectedDate:maximumDate:minimumDate:selectionAction:"></a>
718+
<a name="//apple_ref/swift/Method/setDatePicker(mode:selectedDate:maximumDate:minimumDate:selectionAction:)" class="dashAnchor"></a>
719+
<a class="token" href="#/c:@CM@RNAlertController@objc(cs)RNAlertController(im)setDatePickerWithMode:selectedDate:maximumDate:minimumDate:selectionAction:">setDatePicker(mode:selectedDate:maximumDate:minimumDate:selectionAction:)</a>
720720
</code>
721721
</div>
722722
<div class="height-container">
@@ -735,7 +735,9 @@ <h4>Declaration</h4>
735735
<p class="aside-title">Swift</p>
736736
<pre class="highlight swift"><code><span class="kd">@discardableResult</span>
737737
<span class="kd">func</span> <span class="nf">setDatePicker</span><span class="p">(</span><span class="nv">mode</span><span class="p">:</span> <span class="kt">UIDatePicker</span><span class="o">.</span><span class="kt">Mode</span><span class="p">,</span>
738-
<span class="nv">date</span><span class="p">:</span> <span class="kt">Date</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span>
738+
<span class="nv">selectedDate</span><span class="p">:</span> <span class="kt">Date</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span>
739+
<span class="nv">maximumDate</span><span class="p">:</span> <span class="kt">Date</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span>
740+
<span class="nv">minimumDate</span><span class="p">:</span> <span class="kt">Date</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span>
739741
<span class="nv">selectionAction</span><span class="p">:</span> <span class="kt"><a href="../Typealiases.html#/s:17RNAlertController21AlertDatePickerActiona">AlertDatePickerAction</a></span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">RNAlertController</span></code></pre>
740742

741743
</div>
@@ -759,7 +761,7 @@ <h4>Parameters</h4>
759761
<tr>
760762
<td>
761763
<code>
762-
<em>date</em>
764+
<em>selectedDate</em>
763765
</code>
764766
</td>
765767
<td>
@@ -768,6 +770,30 @@ <h4>Parameters</h4>
768770
</div>
769771
</td>
770772
</tr>
773+
<tr>
774+
<td>
775+
<code>
776+
<em>maximumDate</em>
777+
</code>
778+
</td>
779+
<td>
780+
<div>
781+
<p>Maximum date that a date picker can show.</p>
782+
</div>
783+
</td>
784+
</tr>
785+
<tr>
786+
<td>
787+
<code>
788+
<em>minimumDate</em>
789+
</code>
790+
</td>
791+
<td>
792+
<div>
793+
<p>Minimum date that a date picker can show.</p>
794+
</div>
795+
</td>
796+
</tr>
771797
<tr>
772798
<td>
773799
<code>

0 commit comments

Comments
 (0)