From d40f6d89bf9084e5d03df1aeea8bffd67662f0c0 Mon Sep 17 00:00:00 2001
From: Daan De Deckere <info@daandd.be>
Date: Mon, 12 Feb 2018 20:04:46 +0100
Subject: [PATCH] Add onSubtractTime and onAddTime hooks (#508)

---
 DateTime.js |   33 ++++++++++++++++++++-------------
 1 files changed, 20 insertions(+), 13 deletions(-)

diff --git a/DateTime.js b/DateTime.js
index 81b9544..6f8e908 100644
--- a/DateTime.js
+++ b/DateTime.js
@@ -26,6 +26,8 @@
 		onBlur: TYPES.func,
 		onChange: TYPES.func,
 		onViewModeChange: TYPES.func,
+		onNavigateBack: TYPES.func,
+		onNavigateForward: TYPES.func,
 		locale: TYPES.string,
 		utc: TYPES.bool,
 		input: TYPES.bool,
@@ -254,26 +256,29 @@
 		};
 	},
 
-	addTime: function( amount, type, toSelected ) {
-		return this.updateTime( 'add', amount, type, toSelected );
+	subtractTime: function( amount, type, toSelected ) {
+		var me = this;
+		return function() {
+			me.props.onNavigateBack( amount, type );
+			me.updateTime( 'subtract', amount, type, toSelected );
+		};
 	},
 
-	subtractTime: function( amount, type, toSelected ) {
-		return this.updateTime( 'subtract', amount, type, toSelected );
+	addTime: function( amount, type, toSelected ) {
+		var me = this;
+		return function() {
+			me.props.onNavigateForward( amount, type );
+			me.updateTime( 'add', amount, type, toSelected );
+		};
 	},
 
 	updateTime: function( op, amount, type, toSelected ) {
-		var me = this;
+		var update = {},
+			date = toSelected ? 'selectedDate' : 'viewDate';
 
-		return function() {
-			var update = {},
-				date = toSelected ? 'selectedDate' : 'viewDate'
-			;
+		update[ date ] = this.state[ date ].clone()[ op ]( amount, type );
 
-			update[ date ] = me.state[ date ].clone()[ op ]( amount, type );
-
-			me.setState( update );
-		};
+		this.setState( update );
 	},
 
 	allowedSetTime: ['hours', 'minutes', 'seconds', 'milliseconds'],
@@ -459,6 +464,8 @@
 	onBlur: function() {},
 	onChange: function() {},
 	onViewModeChange: function() {},
+	onNavigateBack: function() {},
+	onNavigateForward: function() {},
 	timeFormat: true,
 	timeConstraints: {},
 	dateFormat: true,

--
Gitblit v1.9.3