Skip to content

Commit b2cbe36

Browse files
Merge branch 'master' of https://github.com/Hacker0x01/react-datepicker into dropdowns-overlap-fix
2 parents 7e83e23 + 2a970f1 commit b2cbe36

File tree

12 files changed

+1117
-988
lines changed

12 files changed

+1117
-988
lines changed

docs-site/package.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33
"version": "0.1.0",
44
"private": true,
55
"dependencies": {
6-
"highlight.js": "^11.5.0",
7-
"react": "^17.0.2",
6+
"highlight.js": "^11.5.1",
7+
"react": "^18.1.0",
88
"react-app-rewired": "^2.2.1",
9-
"react-dom": "^17.0.2",
10-
"react-live": "^2.3.0",
9+
"react-dom": "^18.1.0",
10+
"react-live": "^2.4.1",
1111
"react-scripts": "4.0.3"
1212
},
1313
"scripts": {
@@ -32,7 +32,7 @@
3232
]
3333
},
3434
"devDependencies": {
35-
"sass": "^1.49.10",
35+
"sass": "^1.52.0",
3636
"raw-loader": "^4.0.2"
3737
}
3838
}

docs-site/yarn.lock

Lines changed: 32 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -3322,9 +3322,9 @@ async-limiter@~1.0.0:
33223322
integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==
33233323

33243324
async@^2.6.2:
3325-
version "2.6.3"
3326-
resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff"
3327-
integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==
3325+
version "2.6.4"
3326+
resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221"
3327+
integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==
33283328
dependencies:
33293329
lodash "^4.17.14"
33303330

@@ -6424,10 +6424,10 @@ hex-color-regex@^1.1.0:
64246424
resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e"
64256425
integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==
64266426

6427-
highlight.js@^11.5.0:
6428-
version "11.5.0"
6429-
resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-11.5.0.tgz#00abb7ed926491adbdabc93a4f3fd2b88b451b4a"
6430-
integrity sha512-SM6WDj5/C+VfIY8pZ6yW6Xa0Fm1tniYVYWYW1Q/DcMnISZFrC3aQAZZZFAAZtybKNrGId3p/DNbFTtcTXXgYBw==
6427+
highlight.js@^11.5.1:
6428+
version "11.5.1"
6429+
resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-11.5.1.tgz#027c24e4509e2f4dcd00b4a6dda542ce0a1f7aea"
6430+
integrity sha512-LKzHqnxr4CrD2YsNoIf/o5nJ09j4yi/GcH5BnYz9UnVpZdS4ucMgvP61TDty5xJcFGRjnH4DpujkS9bHT3hq0Q==
64316431

64326432
hmac-drbg@^1.0.1:
64336433
version "1.0.1"
@@ -8005,15 +8005,10 @@ lodash.uniq@^4.5.0:
80058005
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
80068006
integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
80078007

8008-
"lodash@>=3.5 <5", lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.5:
8009-
version "4.17.15"
8010-
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
8011-
integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
8012-
8013-
lodash@^4.17.19, lodash@^4.17.20:
8014-
version "4.17.20"
8015-
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
8016-
integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==
8008+
"lodash@>=3.5 <5", lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.5:
8009+
version "4.17.21"
8010+
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
8011+
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
80178012

80188013
loglevel@^1.6.8:
80198014
version "1.6.8"
@@ -10239,14 +10234,13 @@ react-dev-utils@^11.0.3:
1023910234
strip-ansi "6.0.0"
1024010235
text-table "0.2.0"
1024110236

10242-
react-dom@^17.0.2:
10243-
version "17.0.2"
10244-
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23"
10245-
integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==
10237+
react-dom@^18.1.0:
10238+
version "18.1.0"
10239+
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.1.0.tgz#7f6dd84b706408adde05e1df575b3a024d7e8a2f"
10240+
integrity sha512-fU1Txz7Budmvamp7bshe4Zi32d0ll7ect+ccxNu9FlObT605GOEB8BfO4tmRJ39R5Zj831VCpvQ05QPBW5yb+w==
1024610241
dependencies:
1024710242
loose-envify "^1.1.0"
10248-
object-assign "^4.1.1"
10249-
scheduler "^0.20.2"
10243+
scheduler "^0.22.0"
1025010244

1025110245
react-error-overlay@^6.0.9:
1025210246
version "6.0.9"
@@ -10263,10 +10257,10 @@ react-is@^17.0.1:
1026310257
resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.1.tgz#5b3531bd76a645a4c9fb6e693ed36419e3301339"
1026410258
integrity sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==
1026510259

10266-
react-live@^2.3.0:
10267-
version "2.3.0"
10268-
resolved "https://registry.yarnpkg.com/react-live/-/react-live-2.3.0.tgz#09fbac361903970e7cf51cee60729eeb164a5d87"
10269-
integrity sha512-b+Nc7x/bLu2sPX/If1uncrmUvYtXTqxY8QpzBw/X76SA3QJ1ggU0Ld6X5phLXZ469+XWO5lOU7OpAt0JoTyZPQ==
10260+
react-live@^2.4.1:
10261+
version "2.4.1"
10262+
resolved "https://registry.yarnpkg.com/react-live/-/react-live-2.4.1.tgz#65e674ff9ca9a9a95f83117acc21ffd968aca619"
10263+
integrity sha512-r+32f7oV/kBs3QZBRvaT+9vOkQW47UZrDpgwUe5FiIMOl7sdo5pmISgb7Zpj5PGHgY6XQaiXs3FEh+IWw3KbRg==
1027010264
dependencies:
1027110265
"@types/buble" "^0.20.0"
1027210266
buble "0.19.6"
@@ -10353,13 +10347,12 @@ react-simple-code-editor@^0.11.0:
1035310347
resolved "https://registry.yarnpkg.com/react-simple-code-editor/-/react-simple-code-editor-0.11.0.tgz#bb57c7c29b570f2ab229872599eac184f5bc673c"
1035410348
integrity sha512-xGfX7wAzspl113ocfKQAR8lWPhavGWHL3xSzNLeseDRHysT+jzRBi/ExdUqevSMos+7ZtdfeuBOXtgk9HTwsrw==
1035510349

10356-
react@^17.0.2:
10357-
version "17.0.2"
10358-
resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037"
10359-
integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==
10350+
react@^18.1.0:
10351+
version "18.1.0"
10352+
resolved "https://registry.yarnpkg.com/react/-/react-18.1.0.tgz#6f8620382decb17fdc5cc223a115e2adbf104890"
10353+
integrity sha512-4oL8ivCz5ZEPyclFQXaNksK3adutVS8l2xzZU0cqEFrE9Sb7fC0EFK5uEk74wIreL1DERyjvsU915j1pcT2uEQ==
1036010354
dependencies:
1036110355
loose-envify "^1.1.0"
10362-
object-assign "^4.1.1"
1036310356

1036410357
read-pkg-up@^2.0.0:
1036510358
version "2.0.0"
@@ -10890,10 +10883,10 @@ sass-loader@^10.0.5:
1089010883
schema-utils "^3.0.0"
1089110884
semver "^7.3.2"
1089210885

10893-
sass@^1.49.10:
10894-
version "1.49.10"
10895-
resolved "https://registry.yarnpkg.com/sass/-/sass-1.49.10.tgz#7b83cee0f03bbba443111b3f94944fde2b0c7a6b"
10896-
integrity sha512-w37zfWJwKu4I78U4z63u1mmgoncq+v3iOB4yzQMPyAPVHHawaQSnu9C9ysGQnZEhW609jkcLioJcMCqm75JMdg==
10886+
sass@^1.52.0:
10887+
version "1.52.0"
10888+
resolved "https://registry.yarnpkg.com/sass/-/sass-1.52.0.tgz#3dc755ff459858ce7062887181648701f028c4f5"
10889+
integrity sha512-6EnTglag2oVD8sNJCxUi2Jd3ICH9tJ5Mqudt/gIZNBR2uKJUBZuTpW9O1t04SkDLP7VFa76FCWTV2rwchqM8Kw==
1089710890
dependencies:
1089810891
chokidar ">=3.0.0 <4.0.0"
1089910892
immutable "^4.0.0"
@@ -10911,13 +10904,12 @@ saxes@^5.0.0:
1091110904
dependencies:
1091210905
xmlchars "^2.2.0"
1091310906

10914-
scheduler@^0.20.2:
10915-
version "0.20.2"
10916-
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91"
10917-
integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==
10907+
scheduler@^0.22.0:
10908+
version "0.22.0"
10909+
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.22.0.tgz#83a5d63594edf074add9a7198b1bae76c3db01b8"
10910+
integrity sha512-6QAm1BgQI88NPYymgGQLCZgvep4FyePDWFpXVK+zNSUgHwlqpJy8VEh8Et0KxTACS4VWwMousBElAZOH9nkkoQ==
1091810911
dependencies:
1091910912
loose-envify "^1.1.0"
10920-
object-assign "^4.1.1"
1092110913

1092210914
schema-utils@^1.0.0:
1092310915
version "1.0.0"

docs/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@
5656
| `maxTime` | `instanceOfDate` | | |
5757
| `minDate` | `instanceOfDate` | | |
5858
| `minTime` | `instanceOfDate` | | |
59+
| `monthAriaLabelPrefix` | `string` | | |
5960
| `monthClassName` | `func` | | |
6061
| `monthsShown` | `number` | `1` | |
6162
| `name` | `string` | | |

examples/hello-world/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"private": true,
55
"dependencies": {
66
"react": "^17.0.2",
7-
"react-datepicker": "^4.7.0",
7+
"react-datepicker": "^4.8.0",
88
"react-dom": "^17.0.2",
99
"react-scripts": "4.0.3"
1010
},

examples/hello-world/yarn.lock

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3338,9 +3338,9 @@ async-limiter@~1.0.0:
33383338
integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==
33393339

33403340
async@^2.6.2:
3341-
version "2.6.3"
3342-
resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff"
3343-
integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==
3341+
version "2.6.4"
3342+
resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221"
3343+
integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==
33443344
dependencies:
33453345
lodash "^4.17.14"
33463346

@@ -7986,15 +7986,10 @@ lodash.uniq@^4.5.0:
79867986
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
79877987
integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
79887988

7989-
"lodash@>=3.5 <5", lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.5:
7990-
version "4.17.15"
7991-
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
7992-
integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
7993-
7994-
lodash@^4.17.19, lodash@^4.17.20:
7995-
version "4.17.20"
7996-
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
7997-
integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==
7989+
"lodash@>=3.5 <5", lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.5:
7990+
version "4.17.21"
7991+
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
7992+
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
79987993

79997994
loglevel@^1.6.8:
80007995
version "1.6.8"
@@ -10153,10 +10148,10 @@ react-app-polyfill@^2.0.0:
1015310148
regenerator-runtime "^0.13.7"
1015410149
whatwg-fetch "^3.4.1"
1015510150

10156-
react-datepicker@^4.7.0:
10157-
version "4.7.0"
10158-
resolved "https://registry.yarnpkg.com/react-datepicker/-/react-datepicker-4.7.0.tgz#75e03b0a6718b97b84287933307faf2ed5f03cf4"
10159-
integrity sha512-FS8KgbwqpxmJBv/bUdA42MYqYZa+fEYcpc746DZiHvVE2nhjrW/dg7c5B5fIUuI8gZET6FOzuDgezNcj568Czw==
10151+
react-datepicker@^4.8.0:
10152+
version "4.8.0"
10153+
resolved "https://registry.yarnpkg.com/react-datepicker/-/react-datepicker-4.8.0.tgz#11b8918d085a1ce4781eee4c8e4641b3cd592010"
10154+
integrity sha512-u69zXGHMpxAa4LeYR83vucQoUCJQ6m/WBsSxmUMu/M8ahTSVMMyiyQzauHgZA2NUr9y0FUgOAix71hGYUb6tvg==
1016010155
dependencies:
1016110156
"@popperjs/core" "^2.9.2"
1016210157
classnames "^2.2.6"

package.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"author": "HackerOne",
33
"name": "react-datepicker",
44
"description": "A simple and reusable datepicker component for React",
5-
"version": "4.7.0",
5+
"version": "4.8.0",
66
"license": "MIT",
77
"homepage": "https://github.com/Hacker0x01/react-datepicker",
88
"main": "dist/index.js",
@@ -59,7 +59,7 @@
5959
"eslint": "^7.4.0",
6060
"eslint-plugin-import": "^2.18.2",
6161
"eslint-plugin-node": "^11.1.0",
62-
"eslint-plugin-promise": "^5.1.0",
62+
"eslint-plugin-promise": "^6.0.0",
6363
"eslint-plugin-react": "^7.14.3",
6464
"express": "^4.17.1",
6565
"flow-bin": "^0.132.0",
@@ -76,7 +76,7 @@
7676
"karma-sourcemap-loader": "^0.3.7",
7777
"karma-webpack": "^4.0.2",
7878
"lint-staged": "^12.1.2",
79-
"mocha": "^9.0.1",
79+
"mocha": "^10.0.0",
8080
"npm-run-all": "^4.1.5",
8181
"prettier": "^2.0.5",
8282
"react": "^17.0.2",
@@ -96,7 +96,7 @@
9696
"rollup-plugin-uglify": "^6.0.4",
9797
"sass": "1.49.10",
9898
"sass-loader": "^10.2.1",
99-
"sinon": "^12.0.1",
99+
"sinon": "^14.0.0",
100100
"slugify": "^1.3.4",
101101
"style-loader": "^2.0.0",
102102
"stylelint": "^14.1.0",
@@ -109,8 +109,8 @@
109109
"webpack-hot-middleware": "^2.25.0"
110110
},
111111
"peerDependencies": {
112-
"react": "^16.9.0 || ^17",
113-
"react-dom": "^16.9.0 || ^17"
112+
"react": "^16.9.0 || ^17 || ^18",
113+
"react-dom": "^16.9.0 || ^17 || ^18"
114114
},
115115
"dependencies": {
116116
"@popperjs/core": "^2.9.2",

src/day.jsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -185,10 +185,10 @@ export default class Day extends React.Component {
185185
return false;
186186
}
187187

188-
const { day, endDate, selectsEnd } = this.props;
188+
const { day, endDate, selectsEnd, selectsRange } = this.props;
189189
const selectingDate = this.props.selectingDate ?? this.props.preSelection;
190190

191-
if (selectsEnd) {
191+
if (selectsEnd || selectsRange) {
192192
return isSameDay(day, selectingDate);
193193
} else {
194194
return isSameDay(day, endDate);

src/index.jsx

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import Calendar from "./calendar";
44
import Portal from "./portal";
55
import PopperComponent, { popperPlacementPositions } from "./popper_component";
66
import classnames from "classnames";
7+
import set from "date-fns/set";
78
import startOfDay from "date-fns/startOfDay";
89
import endOfDay from "date-fns/endOfDay";
910
import {
@@ -38,6 +39,7 @@ import {
3839
setDefaultLocale,
3940
getDefaultLocale,
4041
DEFAULT_YEAR_ITEM_NUMBER,
42+
isSameDay,
4143
} from "./date_utils";
4244
import onClickOutside from "react-onclickoutside";
4345

@@ -483,13 +485,24 @@ export default class DatePicker extends React.Component {
483485
inputValue: event.target.value,
484486
lastPreSelectChange: PRESELECT_CHANGE_VIA_INPUT,
485487
});
486-
const date = parseDate(
488+
let date = parseDate(
487489
event.target.value,
488490
this.props.dateFormat,
489491
this.props.locale,
490492
this.props.strictParsing,
491493
this.props.minDate
492494
);
495+
// Use date from `selected` prop when manipulating only time for input value
496+
if (
497+
this.props.showTimeSelectOnly &&
498+
!isSameDay(date, this.props.selected)
499+
) {
500+
date = set(this.props.selected, {
501+
hours: getHours(date),
502+
minutes: getMinutes(date),
503+
seconds: getSeconds(date),
504+
});
505+
}
493506
if (date || !event.target.value) {
494507
this.setSelected(date, event, true);
495508
}

test/date_utils_test.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ import {
3636
} from "../src/date_utils";
3737
import setMinutes from "date-fns/setMinutes";
3838
import setHours from "date-fns/setHours";
39+
import addQuarters from "date-fns/addQuarters";
3940
import ptBR from "date-fns/locale/pt-BR";
4041
import { registerLocale } from "../src/date_utils";
4142

@@ -490,7 +491,7 @@ describe("date_utils", function () {
490491

491492
it("should be disabled if not in included dates", () => {
492493
const day = newDate();
493-
const includeDates = [addDays(day, 40)];
494+
const includeDates = [addQuarters(day, 1)];
494495
expect(isQuarterDisabled(day, { includeDates })).to.be.true;
495496
});
496497

test/datepicker_test.js

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1900,4 +1900,35 @@ describe("DatePicker", () => {
19001900
.text();
19011901
expect(firstDay).to.equal("Su");
19021902
});
1903+
1904+
describe("when update the datepicker input text while props.showTimeSelectOnly is set and dateFormat has only time related format", () => {
1905+
const format = "h:mm aa";
1906+
1907+
it("should keep selected date in state except new time", () => {
1908+
const selected = utils.newDate("2022-02-24 10:00:00");
1909+
let date;
1910+
1911+
const datePicker = TestUtils.renderIntoDocument(
1912+
<DatePicker
1913+
selected={selected}
1914+
onChange={(d) => {
1915+
console.log("trigger change", d);
1916+
date = d;
1917+
}}
1918+
showTimeSelect
1919+
showTimeSelectOnly
1920+
dateFormat={format}
1921+
timeFormat={format}
1922+
/>
1923+
);
1924+
1925+
const input = ReactDOM.findDOMNode(datePicker.input);
1926+
input.value = "8:22 AM";
1927+
TestUtils.Simulate.change(input);
1928+
1929+
expect(utils.isSameDay(date, selected)).to.equal(true);
1930+
expect(utils.getHours(date)).to.equal(8);
1931+
expect(utils.getMinutes(date)).to.equal(22);
1932+
});
1933+
});
19031934
});

0 commit comments

Comments
 (0)