rsuite 5.6.0 → 5.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,9 +1,10 @@
1
1
  import React from 'react';
2
2
  import { RangeType } from './Toolbar';
3
3
  import { DatePickerLocale } from '../locales';
4
+ import { PickerToggleProps } from '../Picker';
4
5
  import { FormControlBaseProps, PickerBaseProps, RsRefForwardingComponent } from '../@types/common';
5
6
  export type { RangeType } from './Toolbar';
6
- export interface DatePickerProps extends PickerBaseProps<DatePickerLocale>, FormControlBaseProps<Date | null> {
7
+ export interface DatePickerProps extends PickerBaseProps<DatePickerLocale>, FormControlBaseProps<Date | null>, Pick<PickerToggleProps, 'caretAs' | 'readOnly' | 'plaintext'> {
7
8
  /** Configure shortcut options */
8
9
  ranges?: RangeType<Date>[];
9
10
  /** Calendar panel default presentation date and time */
@@ -44,6 +44,7 @@ var DatePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
44
44
  showWeekNumbers = props.showWeekNumbers,
45
45
  style = props.style,
46
46
  toggleAs = props.toggleAs,
47
+ caretAsProp = props.caretAs,
47
48
  disabledDateProp = props.disabledDate,
48
49
  renderValue = props.renderValue,
49
50
  onChange = props.onChange,
@@ -59,7 +60,7 @@ var DatePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
59
60
  onSelect = props.onSelect,
60
61
  onToggleMonthDropdown = props.onToggleMonthDropdown,
61
62
  onToggleTimeDropdown = props.onToggleTimeDropdown,
62
- rest = _objectWithoutPropertiesLoose(props, ["as", "className", "classPrefix", "calendarDefaultDate", "cleanable", "defaultValue", "disabled", "format", "isoWeek", "limitEndYear", "locale", "menuClassName", "appearance", "placement", "oneTap", "placeholder", "ranges", "value", "showMeridian", "showWeekNumbers", "style", "toggleAs", "disabledDate", "renderValue", "onChange", "onChangeCalendarDate", "onClean", "onClose", "onEntered", "onExited", "onNextMonth", "onOk", "onOpen", "onPrevMonth", "onSelect", "onToggleMonthDropdown", "onToggleTimeDropdown"]);
63
+ rest = _objectWithoutPropertiesLoose(props, ["as", "className", "classPrefix", "calendarDefaultDate", "cleanable", "defaultValue", "disabled", "format", "isoWeek", "limitEndYear", "locale", "menuClassName", "appearance", "placement", "oneTap", "placeholder", "ranges", "value", "showMeridian", "showWeekNumbers", "style", "toggleAs", "caretAs", "disabledDate", "renderValue", "onChange", "onChangeCalendarDate", "onClean", "onClose", "onEntered", "onExited", "onNextMonth", "onOk", "onOpen", "onPrevMonth", "onSelect", "onToggleMonthDropdown", "onToggleTimeDropdown"]);
63
64
 
64
65
  var _useCustom = useCustom('DatePicker', overrideLocale),
65
66
  locale = _useCustom.locale,
@@ -415,8 +416,8 @@ var DatePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
415
416
  return (_renderValue = renderValue === null || renderValue === void 0 ? void 0 : renderValue(value, formatStr)) !== null && _renderValue !== void 0 ? _renderValue : formatDate(value, formatStr);
416
417
  }, [formatStr, formatDate, placeholder, renderValue, value]);
417
418
  var caretAs = useMemo(function () {
418
- return DateUtils.shouldOnlyTime(formatStr) ? IconClockO : IconCalendar;
419
- }, [formatStr]);
419
+ return caretAsProp || (DateUtils.shouldOnlyTime(formatStr) ? IconClockO : IconCalendar);
420
+ }, [caretAsProp, formatStr]);
420
421
  return /*#__PURE__*/React.createElement(PickerToggleTrigger, {
421
422
  trigger: "active",
422
423
  pickerProps: pick(props, pickTriggerPropKeys),
@@ -1,8 +1,8 @@
1
1
  import React from 'react';
2
2
  import { FormControlBaseProps, PickerBaseProps } from '../@types/common';
3
- import { PickerComponent } from '../Picker';
3
+ import { PickerComponent, PickerToggleProps } from '../Picker';
4
4
  import { DisabledDateFunction, RangeType, DateRange } from './types';
5
- export interface DateRangePickerProps extends PickerBaseProps, FormControlBaseProps<DateRange | null> {
5
+ export interface DateRangePickerProps extends PickerBaseProps, FormControlBaseProps<DateRange | null>, Pick<PickerToggleProps, 'caretAs' | 'readOnly' | 'plaintext'> {
6
6
  /** Configure shortcut options */
7
7
  ranges?: RangeType[];
8
8
  /** Format date */
@@ -56,6 +56,7 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
56
56
  showMeridian = props.showMeridian,
57
57
  style = props.style,
58
58
  toggleAs = props.toggleAs,
59
+ caretAs = props.caretAs,
59
60
  valueProp = props.value,
60
61
  onChange = props.onChange,
61
62
  onClean = props.onClean,
@@ -66,7 +67,7 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
66
67
  onOk = props.onOk,
67
68
  onOpen = props.onOpen,
68
69
  onSelect = props.onSelect,
69
- rest = _objectWithoutPropertiesLoose(props, ["as", "classPrefix", "className", "appearance", "cleanable", "character", "defaultCalendarValue", "defaultValue", "disabled", "disabledDate", "format", "hoverRange", "isoWeek", "limitEndYear", "locale", "menuClassName", "menuStyle", "oneTap", "placeholder", "placement", "ranges", "renderValue", "showOneCalendar", "showWeekNumbers", "showMeridian", "style", "toggleAs", "value", "onChange", "onClean", "onClose", "onEnter", "onEntered", "onExited", "onOk", "onOpen", "onSelect"]);
70
+ rest = _objectWithoutPropertiesLoose(props, ["as", "classPrefix", "className", "appearance", "cleanable", "character", "defaultCalendarValue", "defaultValue", "disabled", "disabledDate", "format", "hoverRange", "isoWeek", "limitEndYear", "locale", "menuClassName", "menuStyle", "oneTap", "placeholder", "placement", "ranges", "renderValue", "showOneCalendar", "showWeekNumbers", "showMeridian", "style", "toggleAs", "caretAs", "value", "onChange", "onClean", "onClose", "onEnter", "onEntered", "onExited", "onOk", "onOpen", "onSelect"]);
70
71
 
71
72
  var _useClassNames = useClassNames(classPrefix),
72
73
  merge = _useClassNames.merge,
@@ -606,8 +607,8 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
606
607
  hasValue: hasValue,
607
608
  active: isPickerToggleActive,
608
609
  placement: placement,
609
- caretAs: IconCalendar,
610
- disabled: disabled
610
+ disabled: disabled,
611
+ caretAs: caretAs || IconCalendar
611
612
  }), getDisplayString(value))));
612
613
  });
613
614
  DateRangePicker.after = disabledDateUtils.after;
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
- import { ButtonProps } from '../Button';
3
2
  import { IconProps } from '@rsuite/icons/lib/Icon';
3
+ import { RsRefForwardingComponent } from '../@types/common';
4
+ import Button, { ButtonProps } from '../Button';
4
5
  export interface IconButtonProps extends ButtonProps {
5
6
  /** Set the icon */
6
7
  icon?: React.ReactElement<IconProps>;
@@ -9,5 +10,7 @@ export interface IconButtonProps extends ButtonProps {
9
10
  /** The placement of icon */
10
11
  placement?: 'left' | 'right';
11
12
  }
12
- declare const IconButton: React.ForwardRefExoticComponent<IconButtonProps & React.RefAttributes<unknown>>;
13
+ declare const IconButton: RsRefForwardingComponent<typeof Button, IconButtonProps & {
14
+ ref?: React.Ref<HTMLElement>;
15
+ }>;
13
16
  export default IconButton;
@@ -2,8 +2,8 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
3
  import React from 'react';
4
4
  import PropTypes from 'prop-types';
5
- import Button from '../Button';
6
5
  import { useClassNames } from '../utils';
6
+ import Button from '../Button';
7
7
  var IconButton = /*#__PURE__*/React.forwardRef(function (props, ref) {
8
8
  var icon = props.icon,
9
9
  _props$placement = props.placement,
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ import IconButton from '../IconButton';
3
+
4
+ var Link = function Link(_ref) {
5
+ var to = _ref.to;
6
+ return /*#__PURE__*/React.createElement("a", {
7
+ href: to
8
+ });
9
+ };
10
+
11
+ var ref = /*#__PURE__*/React.createRef(); // Infer `as` component props
12
+
13
+ /*#__PURE__*/
14
+ React.createElement(IconButton, {
15
+ ref: ref,
16
+ as: Link,
17
+ to: "/home"
18
+ });
@@ -1,4 +1,5 @@
1
1
  import { pickTriggerPropKeys, omitTriggerPropKeys, OverlayTriggerInstance, PositionChildProps } from './PickerToggleTrigger';
2
+ import { PickerToggleProps } from './PickerToggle';
2
3
  import { PickerInstance, PickerComponent } from './types';
3
4
  export { default as DropdownMenu } from './DropdownMenu';
4
5
  export { default as DropdownMenuCheckItem } from './DropdownMenuCheckItem';
@@ -10,6 +11,6 @@ export { default as PickerToggleTrigger } from './PickerToggleTrigger';
10
11
  export { default as SearchBar } from './SearchBar';
11
12
  export { default as SelectedElement } from './SelectedElement';
12
13
  export { pickTriggerPropKeys, omitTriggerPropKeys };
13
- export type { OverlayTriggerInstance, PositionChildProps, PickerInstance, PickerComponent };
14
+ export type { OverlayTriggerInstance, PositionChildProps, PickerInstance, PickerComponent, PickerToggleProps };
14
15
  export * from './utils';
15
16
  export * from './propTypes';
@@ -8,7 +8,7 @@ export interface Toaster {
8
8
  * @param message
9
9
  * @param options
10
10
  */
11
- push(message: React.ReactNode, options?: ToastContainerProps): string;
11
+ push(message: React.ReactNode, options?: ToastContainerProps): string | undefined;
12
12
  /**
13
13
  * Remove a message by key
14
14
  * @param key
@@ -33,6 +33,8 @@ var toaster = function toaster(message) {
33
33
  };
34
34
 
35
35
  toaster.push = function (message, options) {
36
+ var _container$current;
37
+
36
38
  if (options === void 0) {
37
39
  options = {};
38
40
  }
@@ -45,18 +47,22 @@ toaster.push = function (message, options) {
45
47
  container = createContainer((_options$placement = options.placement) !== null && _options$placement !== void 0 ? _options$placement : '', options);
46
48
  }
47
49
 
48
- return container.current.push(message);
50
+ return (_container$current = container.current) === null || _container$current === void 0 ? void 0 : _container$current.push(message);
49
51
  };
50
52
 
51
53
  toaster.remove = function (key) {
52
54
  containers.forEach(function (c) {
53
- return c.current.remove(key);
55
+ var _c$current;
56
+
57
+ return (_c$current = c.current) === null || _c$current === void 0 ? void 0 : _c$current.remove(key);
54
58
  });
55
59
  };
56
60
 
57
61
  toaster.clear = function () {
58
62
  containers.forEach(function (c) {
59
- return c.current.clear();
63
+ var _c$current2;
64
+
65
+ return (_c$current2 = c.current) === null || _c$current2 === void 0 ? void 0 : _c$current2.clear();
60
66
  });
61
67
  };
62
68
 
@@ -6,7 +6,7 @@ export interface UseTimeoutFnReturn {
6
6
  * A timer hook
7
7
  * @param fn Timer callback function
8
8
  * @param ms Milliseconds of the timer
9
- * @param open Whether to open the timer
9
+ * @param enabled Whether to open the timer
10
10
  */
11
- declare function useTimeout(fn: (() => void) | undefined, ms?: number, open?: boolean): UseTimeoutFnReturn;
11
+ declare function useTimeout(fn: (() => void) | undefined, ms?: number, enabled?: boolean): UseTimeoutFnReturn;
12
12
  export default useTimeout;
@@ -4,32 +4,41 @@ import { useEffect, useRef, useCallback } from 'react';
4
4
  * A timer hook
5
5
  * @param fn Timer callback function
6
6
  * @param ms Milliseconds of the timer
7
- * @param open Whether to open the timer
7
+ * @param enabled Whether to open the timer
8
8
  */
9
- function useTimeout(fn, ms, open) {
9
+ function useTimeout(fn, ms, enabled) {
10
10
  if (ms === void 0) {
11
11
  ms = 0;
12
12
  }
13
13
 
14
- if (open === void 0) {
15
- open = true;
14
+ if (enabled === void 0) {
15
+ enabled = true;
16
16
  }
17
17
 
18
18
  var timeout = useRef();
19
+ var callback = useRef(fn);
19
20
  var clear = useCallback(function () {
20
21
  timeout.current && clearTimeout(timeout.current);
21
22
  }, []);
22
23
  var set = useCallback(function () {
23
- if (open) {
24
+ timeout.current && clearTimeout(timeout.current);
25
+
26
+ if (enabled) {
24
27
  timeout.current = setTimeout(function () {
25
- return fn === null || fn === void 0 ? void 0 : fn();
28
+ var _callback$current;
29
+
30
+ (_callback$current = callback.current) === null || _callback$current === void 0 ? void 0 : _callback$current.call(callback);
26
31
  }, ms);
27
32
  }
28
- }, [ms, fn, open]);
33
+ }, [ms, enabled]); // update ref when function changes
34
+
35
+ useEffect(function () {
36
+ callback.current = fn;
37
+ }, [fn]);
29
38
  useEffect(function () {
30
39
  set();
31
40
  return clear;
32
- }, [fn, ms, open, clear, set]);
41
+ }, [ms, enabled, set, clear]);
33
42
  return {
34
43
  clear: clear,
35
44
  reset: set
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rsuite",
3
- "version": "5.6.0",
3
+ "version": "5.6.1",
4
4
  "description": "A suite of react components",
5
5
  "main": "cjs/index.js",
6
6
  "module": "esm/index.js",