react-date-picker
Advanced tools
Comparing version 9.1.0 to 9.2.0
@@ -27,6 +27,6 @@ "use strict"; | ||
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } | ||
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } | ||
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } } | ||
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } | ||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } | ||
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } | ||
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } | ||
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } | ||
@@ -40,3 +40,5 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } | ||
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } | ||
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } | ||
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } | ||
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } | ||
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } | ||
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } | ||
@@ -47,3 +49,3 @@ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } | ||
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } | ||
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } | ||
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } | ||
var getFormatterOptionsCache = {}; | ||
@@ -50,0 +52,0 @@ var defaultMinDate = new Date(); |
@@ -18,4 +18,6 @@ "use strict"; | ||
var isIEOrEdgeLegacy = typeof window !== 'undefined' && /(MSIE|Trident\/|Edge\/)/.test(window.navigator.userAgent); | ||
var isFirefox = typeof window !== 'undefined' && /Firefox/.test(window.navigator.userAgent); | ||
var isBrowser = typeof document !== 'undefined'; | ||
var useIsomorphicLayoutEffect = isBrowser ? _react.useLayoutEffect : _react.useEffect; | ||
var isIEOrEdgeLegacy = isBrowser && /(MSIE|Trident\/|Edge\/)/.test(navigator.userAgent); | ||
var isFirefox = isBrowser && /Firefox/.test(navigator.userAgent); | ||
function onFocus(event) { | ||
@@ -109,3 +111,3 @@ var target = event.target; | ||
value = _ref.value; | ||
(0, _react.useLayoutEffect)(function () { | ||
useIsomorphicLayoutEffect(function () { | ||
if (!inputRef || !inputRef.current) { | ||
@@ -112,0 +114,0 @@ return; |
@@ -22,3 +22,3 @@ "use strict"; | ||
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } | ||
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } | ||
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } | ||
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } | ||
@@ -25,0 +25,0 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } |
@@ -55,2 +55,3 @@ "use strict"; | ||
disabled: disabled, | ||
hidden: true, | ||
max: maxDate ? nativeValueParser(maxDate) : null, | ||
@@ -57,0 +58,0 @@ min: minDate ? nativeValueParser(minDate) : null, |
"use strict"; | ||
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } | ||
Object.defineProperty(exports, "__esModule", { | ||
@@ -22,2 +21,3 @@ value: true | ||
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } | ||
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } | ||
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } | ||
@@ -29,7 +29,7 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } | ||
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } | ||
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } | ||
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } | ||
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } | ||
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } } | ||
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } | ||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } | ||
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } | ||
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } | ||
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } | ||
@@ -43,3 +43,5 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } | ||
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } | ||
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } | ||
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } | ||
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } | ||
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } | ||
var baseClassName = 'react-date-picker'; | ||
@@ -299,2 +301,3 @@ var outsideActionEvents = ['mousedown', 'focusin', 'touchstart']; | ||
className = _this$props5.className, | ||
dataTestid = _this$props5['data-testid'], | ||
disabled = _this$props5.disabled; | ||
@@ -305,3 +308,4 @@ var isOpen = this.state.isOpen; | ||
return /*#__PURE__*/_react["default"].createElement("div", _extends({ | ||
className: (0, _clsx["default"])(baseClassName, "".concat(baseClassName, "--").concat(isOpen ? 'open' : 'closed'), "".concat(baseClassName, "--").concat(disabled ? 'disabled' : 'enabled'), className) | ||
className: (0, _clsx["default"])(baseClassName, "".concat(baseClassName, "--").concat(isOpen ? 'open' : 'closed'), "".concat(baseClassName, "--").concat(disabled ? 'disabled' : 'enabled'), className), | ||
"data-testid": dataTestid | ||
}, eventPropsWithoutOnChange, { | ||
@@ -385,2 +389,3 @@ onFocus: this.onFocus, | ||
closeCalendar: _propTypes["default"].bool, | ||
'data-testid': _propTypes["default"].string, | ||
dayAriaLabel: _propTypes["default"].string, | ||
@@ -387,0 +392,0 @@ dayPlaceholder: _propTypes["default"].string, |
@@ -15,3 +15,3 @@ "use strict"; | ||
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } | ||
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } | ||
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } | ||
var allViews = ['century', 'decade', 'year', 'month']; | ||
@@ -18,0 +18,0 @@ var allValueTypes = [].concat(_toConsumableArray(allViews.slice(1)), ['day']); |
@@ -14,3 +14,3 @@ "use strict"; | ||
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } | ||
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } | ||
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } | ||
/** | ||
@@ -17,0 +17,0 @@ * Returns a value no smaller than min and no larger than max. |
{ | ||
"name": "react-date-picker", | ||
"version": "9.1.0", | ||
"version": "9.2.0", | ||
"description": "A date picker for your React app.", | ||
@@ -9,5 +9,4 @@ "main": "dist/entry.js", | ||
"scripts": { | ||
"build": "yarn build-js && yarn copy-styles && yarn build-styles && yarn copy-types", | ||
"build": "yarn build-js && yarn copy-styles && yarn copy-types", | ||
"build-js": "babel src -d dist --ignore \"**/*.spec.js,**/*.spec.jsx\"", | ||
"build-styles": "lessc ./dist/DatePicker.less ./dist/DatePicker.css", | ||
"clean": "rimraf dist", | ||
@@ -52,2 +51,3 @@ "copy-styles": "node ./copy-styles.js", | ||
"@testing-library/react": "^13.4.0", | ||
"@testing-library/user-event": "^14.4.0", | ||
"eslint": "^8.26.0", | ||
@@ -58,3 +58,2 @@ "eslint-config-wojtekmaj": "^0.7.1", | ||
"jest-environment-jsdom": "^29.0.0", | ||
"less": "^4.0.0", | ||
"prettier": "^2.7.0", | ||
@@ -61,0 +60,0 @@ "pretty-quick": "^3.1.0", |
@@ -95,2 +95,3 @@ [![npm](https://img.shields.io/npm/v/react-date-picker.svg)](https://www.npmjs.com/package/react-date-picker) ![downloads](https://img.shields.io/npm/dt/react-date-picker.svg) [![CI](https://github.com/wojtekmaj/react-date-picker/workflows/CI/badge.svg)](https://github.com/wojtekmaj/react-date-picker/actions) [![tested with jest](https://img.shields.io/badge/tested_with-jest-99424f.svg)](https://github.com/facebook/jest) | ||
| closeCalendar | Whether to close the calendar on value selection. | `true` | `false` | | ||
| data-testid | `data-testid` attribute for the main React-Date-Picker `<div>` element. | n/a | `"date-picker"` | | ||
| dayAriaLabel | `aria-label` for the day input. | n/a | `"Day"` | | ||
@@ -97,0 +98,0 @@ | dayPlaceholder | `placeholder` for the day input. | `"--"` | `"dd"` | |
@@ -21,6 +21,6 @@ import React from 'react'; | ||
const keyCodes = { | ||
'ArrowLeft': 37, | ||
'ArrowUp': 38, | ||
'ArrowRight': 39, | ||
'ArrowDown': 40, | ||
ArrowLeft: 37, | ||
ArrowUp: 38, | ||
ArrowRight: 39, | ||
ArrowDown: 40, | ||
'-': 189, | ||
@@ -27,0 +27,0 @@ '.': 190, |
@@ -1,2 +0,2 @@ | ||
import React, { useLayoutEffect } from 'react'; | ||
import React, { useEffect, useLayoutEffect } from 'react'; | ||
import PropTypes from 'prop-types'; | ||
@@ -10,7 +10,10 @@ import clsx from 'clsx'; | ||
const isIEOrEdgeLegacy = | ||
typeof window !== 'undefined' && /(MSIE|Trident\/|Edge\/)/.test(window.navigator.userAgent); | ||
const isBrowser = typeof document !== 'undefined'; | ||
const isFirefox = typeof window !== 'undefined' && /Firefox/.test(window.navigator.userAgent); | ||
const useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect; | ||
const isIEOrEdgeLegacy = isBrowser && /(MSIE|Trident\/|Edge\/)/.test(navigator.userAgent); | ||
const isFirefox = isBrowser && /Firefox/.test(navigator.userAgent); | ||
function onFocus(event) { | ||
@@ -120,3 +123,3 @@ const { target } = event; | ||
}) { | ||
useLayoutEffect(() => { | ||
useIsomorphicLayoutEffect(() => { | ||
if (!inputRef || !inputRef.current) { | ||
@@ -123,0 +126,0 @@ return; |
@@ -55,2 +55,3 @@ import React from 'react'; | ||
disabled={disabled} | ||
hidden | ||
max={maxDate ? nativeValueParser(maxDate) : null} | ||
@@ -57,0 +58,0 @@ min={minDate ? nativeValueParser(minDate) : null} |
@@ -292,3 +292,3 @@ import React, { createRef, PureComponent } from 'react'; | ||
const { eventProps } = this; | ||
const { className, disabled } = this.props; | ||
const { className, 'data-testid': dataTestid, disabled } = this.props; | ||
const { isOpen } = this.state; | ||
@@ -306,2 +306,3 @@ | ||
)} | ||
data-testid={dataTestid} | ||
{...eventPropsWithoutOnChange} | ||
@@ -368,2 +369,3 @@ onFocus={this.onFocus} | ||
closeCalendar: PropTypes.bool, | ||
'data-testid': PropTypes.string, | ||
dayAriaLabel: PropTypes.string, | ||
@@ -370,0 +372,0 @@ dayPlaceholder: PropTypes.string, |
import React, { createRef } from 'react'; | ||
import { fireEvent, render, waitForElementToBeRemoved } from '@testing-library/react'; | ||
import { act, fireEvent, render, waitFor, waitForElementToBeRemoved } from '@testing-library/react'; | ||
import userEvent from '@testing-library/user-event'; | ||
import DatePicker from './DatePicker'; | ||
async function waitForElementToBeRemovedOrHidden(callback) { | ||
const element = callback(); | ||
if (element) { | ||
try { | ||
await waitFor(() => | ||
expect(element).toHaveAttribute('class', expect.stringContaining('--closed')), | ||
); | ||
} catch (error) { | ||
await waitForElementToBeRemoved(element); | ||
} | ||
} | ||
} | ||
describe('DatePicker', () => { | ||
@@ -281,3 +296,3 @@ it('passes default name to DateInput', () => { | ||
it('closes Calendar component when clicked outside', () => { | ||
it('closes Calendar component when clicked outside', async () => { | ||
const root = document.createElement('div'); | ||
@@ -288,8 +303,10 @@ document.body.appendChild(root); | ||
fireEvent.click(document.body); | ||
userEvent.click(document.body); | ||
waitForElementToBeRemoved(() => container.querySelector('.react-calendar')); | ||
await waitForElementToBeRemovedOrHidden(() => | ||
container.querySelector('.react-date-picker__calendar'), | ||
); | ||
}); | ||
it('closes Calendar component when focused outside', () => { | ||
it('closes Calendar component when focused outside', async () => { | ||
const root = document.createElement('div'); | ||
@@ -302,6 +319,8 @@ document.body.appendChild(root); | ||
waitForElementToBeRemoved(() => container.querySelector('.react-calendar')); | ||
await waitForElementToBeRemovedOrHidden(() => | ||
container.querySelector('.react-date-picker__calendar'), | ||
); | ||
}); | ||
it('closes Calendar component when tapped outside', () => { | ||
it('closes Calendar component when tapped outside', async () => { | ||
const root = document.createElement('div'); | ||
@@ -314,3 +333,5 @@ document.body.appendChild(root); | ||
waitForElementToBeRemoved(() => container.querySelector('.react-calendar')); | ||
await waitForElementToBeRemovedOrHidden(() => | ||
container.querySelector('.react-date-picker__calendar'), | ||
); | ||
}); | ||
@@ -333,3 +354,3 @@ | ||
it('closes Calendar when calling internal onChange by default', () => { | ||
it('closes Calendar when calling internal onChange by default', async () => { | ||
const instance = createRef(); | ||
@@ -339,7 +360,11 @@ | ||
const { onChange } = instance.current; | ||
const { onChange: onChangeInternal } = instance.current; | ||
onChange(new Date()); | ||
act(() => { | ||
onChangeInternal(new Date()); | ||
}); | ||
waitForElementToBeRemoved(() => container.querySelector('.react-calendar')); | ||
await waitForElementToBeRemovedOrHidden(() => | ||
container.querySelector('.react-date-picker__calendar'), | ||
); | ||
}); | ||
@@ -352,5 +377,7 @@ | ||
const { onChange } = instance.current; | ||
const { onChange: onChangeInternal } = instance.current; | ||
onChange(new Date()); | ||
act(() => { | ||
onChangeInternal(new Date()); | ||
}); | ||
@@ -367,5 +394,7 @@ const calendar = container.querySelector('.react-calendar'); | ||
const { onChange } = instance.current; | ||
const { onChange: onChangeInternal } = instance.current; | ||
onChange(new Date(), false); | ||
act(() => { | ||
onChangeInternal(new Date(), false); | ||
}); | ||
@@ -386,3 +415,5 @@ const calendar = container.querySelector('.react-calendar'); | ||
onChangeInternal(nextValue); | ||
act(() => { | ||
onChangeInternal(nextValue); | ||
}); | ||
@@ -389,0 +420,0 @@ expect(onChange).toHaveBeenCalledWith(nextValue); |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
229929
4993
166
46