|
2 | 2 |
|
3 | 3 | import { createElement, useCallback, useEffect, useMemo, useRef, useState } from 'react'; |
4 | 4 | import { createPortal } from 'react-dom'; |
5 | | -import PropTypes from 'prop-types'; |
6 | 5 | import makeEventProps from 'make-event-props'; |
7 | 6 | import clsx from 'clsx'; |
8 | 7 | import Clock from 'react-clock'; |
9 | 8 | import Fit from 'react-fit'; |
10 | 9 |
|
11 | 10 | import TimeInput from './TimeInput.js'; |
12 | 11 |
|
13 | | -import { isTime, rangeOf } from './shared/propTypes.js'; |
14 | | - |
15 | | -import type { ReactNodeArray } from 'prop-types'; |
16 | 12 | import type { |
17 | 13 | ClassName, |
18 | 14 | CloseReason, |
@@ -58,7 +54,9 @@ const ClearIcon = ( |
58 | 54 | </svg> |
59 | 55 | ); |
60 | 56 |
|
61 | | -type Icon = React.ReactElement | ReactNodeArray | null | string | number | boolean; |
| 57 | +type ReactNodeLike = React.ReactNode | string | number | boolean | null | undefined; |
| 58 | + |
| 59 | +type Icon = ReactNodeLike | ReactNodeLike[]; |
62 | 60 |
|
63 | 61 | type IconOrRenderFunction = Icon | React.ComponentType | React.ReactElement; |
64 | 62 |
|
@@ -642,49 +640,4 @@ const TimePicker: React.FC<TimePickerProps> = function TimePicker(props) { |
642 | 640 | ); |
643 | 641 | }; |
644 | 642 |
|
645 | | -const isValue = PropTypes.oneOfType([isTime, PropTypes.instanceOf(Date)]); |
646 | | - |
647 | | -const isValueOrValueArray = PropTypes.oneOfType([isValue, rangeOf(isValue)]); |
648 | | - |
649 | | -TimePicker.propTypes = { |
650 | | - amPmAriaLabel: PropTypes.string, |
651 | | - autoFocus: PropTypes.bool, |
652 | | - className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), |
653 | | - clearAriaLabel: PropTypes.string, |
654 | | - clearIcon: PropTypes.oneOfType([PropTypes.node, PropTypes.func]), |
655 | | - clockAriaLabel: PropTypes.string, |
656 | | - clockClassName: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), |
657 | | - clockIcon: PropTypes.oneOfType([PropTypes.node, PropTypes.func]), |
658 | | - closeClock: PropTypes.bool, |
659 | | - 'data-testid': PropTypes.string, |
660 | | - disableClock: PropTypes.bool, |
661 | | - disabled: PropTypes.bool, |
662 | | - format: PropTypes.string, |
663 | | - hourAriaLabel: PropTypes.string, |
664 | | - hourPlaceholder: PropTypes.string, |
665 | | - id: PropTypes.string, |
666 | | - isOpen: PropTypes.bool, |
667 | | - locale: PropTypes.string, |
668 | | - maxDetail: PropTypes.oneOf(allViews), |
669 | | - maxTime: isTime, |
670 | | - minTime: isTime, |
671 | | - minuteAriaLabel: PropTypes.string, |
672 | | - minutePlaceholder: PropTypes.string, |
673 | | - name: PropTypes.string, |
674 | | - nativeInputAriaLabel: PropTypes.string, |
675 | | - onChange: PropTypes.func, |
676 | | - onClockClose: PropTypes.func, |
677 | | - onClockOpen: PropTypes.func, |
678 | | - onFocus: PropTypes.func, |
679 | | - openClockOnFocus: PropTypes.bool, |
680 | | - required: PropTypes.bool, |
681 | | - secondAriaLabel: PropTypes.string, |
682 | | - secondPlaceholder: PropTypes.string, |
683 | | - value: isValueOrValueArray, |
684 | | -}; |
685 | | - |
686 | | -if (isBrowser) { |
687 | | - TimePicker.propTypes.portalContainer = PropTypes.instanceOf(HTMLElement); |
688 | | -} |
689 | | - |
690 | 643 | export default TimePicker; |
0 commit comments