From ba3705c3b494bff82c281b16df5f92af625349a2 Mon Sep 17 00:00:00 2001 From: Kent Andersen Date: Mon, 12 Oct 2020 21:20:22 +0200 Subject: [PATCH] Removed dependency to moment.js (#242) --- examples/detox/package.json | 2 +- package.json | 1 - src/DatePickerAndroid.js | 24 +++++++++++------------- yarn.lock | 5 ----- 4 files changed, 12 insertions(+), 20 deletions(-) diff --git a/examples/detox/package.json b/examples/detox/package.json index 06dd990..6d31c35 100644 --- a/examples/detox/package.json +++ b/examples/detox/package.json @@ -5,7 +5,7 @@ "scripts": { "start": "react-native start", "postinstall": "yarn make-example-runnable", - "make-example-runnable": "(cd ../../ && npm i react react-native moment --no-save)", + "make-example-runnable": "(cd ../../ && npm i react react-native --no-save)", "build:ios": "detox build --configuration ios.debug", "build:android-debug": "detox build --configuration android.debug", "build:android-ci": "detox build --configuration android.ci", diff --git a/package.json b/package.json index e2dda87..5d2df07 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,6 @@ "react-native-date-picker" ], "dependencies": { - "moment": "^2.22.1" }, "devDependencies": { "@babel/preset-env": "^7.10.4", diff --git a/src/DatePickerAndroid.js b/src/DatePickerAndroid.js index 0032f9e..6884d75 100644 --- a/src/DatePickerAndroid.js +++ b/src/DatePickerAndroid.js @@ -1,6 +1,9 @@ import React from 'react' import { StyleSheet, requireNativeComponent } from 'react-native' -import moment from 'moment' + +function addMinutes(date, minutesToAdd) { + return new Date(date.valueOf() + minutesToAdd * 60 * 1000) +} const NativeDatePicker = requireNativeComponent( `DatePickerManager`, @@ -33,7 +36,7 @@ class DatePickerAndroid extends React.PureComponent { } _onChange = e => { - const jsDate = this._fromIsoWithTimeZoneOffset(e.nativeEvent.date).toDate() + const jsDate = this._fromIsoWithTimeZoneOffset(e.nativeEvent.date) this.props.onDateChange && this.props.onDateChange(jsDate) if (this.props.onDateStringChange) { this.props.onDateStringChange(e.nativeEvent.dateString) @@ -50,22 +53,17 @@ class DatePickerAndroid extends React.PureComponent { _date = () => this._toIsoWithTimeZoneOffset(this.props.date) - _fromIsoWithTimeZoneOffset = date => { - if (this.props.timeZoneOffsetInMinutes === undefined) return moment(date) - - return moment - .utc(date) - .subtract(this.props.timeZoneOffsetInMinutes, 'minutes') + _fromIsoWithTimeZoneOffset = timestamp => { + const date = new Date(timestamp) + if (this.props.timeZoneOffsetInMinutes === undefined) return date + return addMinutes(date, -this.props.timeZoneOffsetInMinutes) } _toIsoWithTimeZoneOffset = date => { if (this.props.timeZoneOffsetInMinutes === undefined) - return moment(date).toISOString() + return date.toISOString() - return moment - .utc(date) - .add(this.props.timeZoneOffsetInMinutes, 'minutes') - .toISOString() + return addMinutes(date, this.props.timeZoneOffsetInMinutes).toISOString() } } diff --git a/yarn.lock b/yarn.lock index 87c111c..8cf7c7a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3080,11 +3080,6 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -moment@^2.22.1: - version "2.24.0" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" - integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg== - ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"