rsuite 5.41.0 → 5.42.0

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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,13 @@
1
+ # [5.42.0](https://github.com/rsuite/rsuite/compare/v5.41.0...v5.42.0) (2023-10-29)
2
+
3
+ ### Bug Fixes
4
+
5
+ - **form:** form doesn't pass correct formValue to context ([#3426](https://github.com/rsuite/rsuite/issues/3426)) ([0ade0dc](https://github.com/rsuite/rsuite/commit/0ade0dc60e25857120eb38047cec1c7e78f8df11))
6
+
7
+ ### Features
8
+
9
+ - **TagPicker,TagInput:** add support for onTagRemove ([#3413](https://github.com/rsuite/rsuite/issues/3413)) ([96f96ab](https://github.com/rsuite/rsuite/commit/96f96abc974fb8b0200c0cc715275fcdcaee3736))
10
+
1
11
  # [5.41.0](https://github.com/rsuite/rsuite/compare/v5.38.0...v5.41.0) (2023-10-20)
2
12
 
3
13
  ### Bug Fixes
package/cjs/Form/Form.js CHANGED
@@ -243,7 +243,6 @@ var Form = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
243
243
  return {
244
244
  getCombinedModel: getCombinedModel,
245
245
  checkTrigger: checkTrigger,
246
- formDefaultValue: formDefaultValue,
247
246
  errorFromContext: errorFromContext,
248
247
  readOnly: readOnly,
249
248
  plaintext: plaintext,
@@ -257,7 +256,7 @@ var Form = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
257
256
  onFieldError: handleFieldError,
258
257
  onFieldSuccess: handleFieldSuccess
259
258
  };
260
- }, [getCombinedModel, checkTrigger, formDefaultValue, errorFromContext, readOnly, plaintext, disabled, realFormError, removeFieldValue, removeFieldError, pushFieldRule, removeFieldRule, handleFieldChange, handleFieldError, handleFieldSuccess]);
259
+ }, [getCombinedModel, checkTrigger, errorFromContext, readOnly, plaintext, disabled, realFormError, removeFieldValue, removeFieldError, pushFieldRule, removeFieldRule, handleFieldChange, handleFieldError, handleFieldSuccess]);
261
260
  return /*#__PURE__*/_react.default.createElement("form", (0, _extends6.default)({}, rest, {
262
261
  ref: rootRef,
263
262
  onSubmit: handleSubmit,
@@ -265,7 +264,7 @@ var Form = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
265
264
  }), /*#__PURE__*/_react.default.createElement(_FormContext.default.Provider, {
266
265
  value: formContextValue
267
266
  }, /*#__PURE__*/_react.default.createElement(_FormContext.FormValueContext.Provider, {
268
- value: formValue
267
+ value: realFormValue
269
268
  }, children)));
270
269
  });
271
270
  Form.Control = _FormControl.default;
@@ -15,16 +15,15 @@ interface TrulyFormContextValue<T = Record<string, any>, errorMsgType = any, E =
15
15
  onFieldError: (name: string, errorMessage: string) => void;
16
16
  onFieldSuccess: (name: string) => void;
17
17
  }
18
- declare type ExternalPropsContextValue<T> = {
18
+ declare type ExternalPropsContextValue = {
19
19
  checkTrigger?: TypeAttributes.CheckTrigger;
20
- formDefaultValue?: T;
21
20
  errorFromContext?: boolean;
22
21
  readOnly?: boolean;
23
22
  plaintext?: boolean;
24
23
  disabled?: boolean;
25
24
  };
26
25
  declare type InitialContextType = Partial<Record<keyof TrulyFormContextValue, undefined>>;
27
- export declare type FormContextValue<T = Record<string, any>, errorMsgType = any> = (TrulyFormContextValue<T, errorMsgType> | InitialContextType) & ExternalPropsContextValue<T>;
26
+ export declare type FormContextValue<T = Record<string, any>, errorMsgType = any> = (TrulyFormContextValue<T, errorMsgType> | InitialContextType) & ExternalPropsContextValue;
28
27
  export declare const FormContext: React.Context<FormContextValue<Record<string, any>, any>>;
29
28
  export declare const FormValueContext: React.Context<Record<string, any> | undefined>;
30
29
  export declare const FormPlaintextContext: React.Context<boolean>;
@@ -30,8 +30,6 @@ var FormControl = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
30
30
  plaintextContext = _useContext.plaintext,
31
31
  disabledContext = _useContext.disabled,
32
32
  errorFromContext = _useContext.errorFromContext,
33
- _useContext$formDefau = _useContext.formDefaultValue,
34
- formDefaultValue = _useContext$formDefau === void 0 ? {} : _useContext$formDefau,
35
33
  formError = _useContext.formError,
36
34
  removeFieldValue = _useContext.removeFieldValue,
37
35
  removeFieldError = _useContext.removeFieldError,
@@ -131,14 +129,12 @@ var FormControl = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
131
129
  var fieldHasError = Boolean(messageNode);
132
130
  var ariaErrormessage = fieldHasError && controlId ? controlId + "-error-message" : undefined;
133
131
  var valueKey = 'value';
134
- var defaultValueKey = 'defaultValue';
135
132
 
136
133
  // Toggle component is a special case that uses `checked` and `defaultChecked` instead of `value` and `defaultValue` props.
137
134
  if (AccepterComponent === _Toggle.default) {
138
135
  valueKey = 'checked';
139
- defaultValueKey = 'defaultChecked';
140
136
  }
141
- var accepterProps = (_accepterProps = {}, _accepterProps[valueKey] = val, _accepterProps[defaultValueKey] = defaultValue !== null && defaultValue !== void 0 ? defaultValue : formDefaultValue[name], _accepterProps);
137
+ var accepterProps = (_accepterProps = {}, _accepterProps[valueKey] = val !== null && val !== void 0 ? val : defaultValue, _accepterProps);
142
138
  return /*#__PURE__*/_react.default.createElement(Component, {
143
139
  className: classes,
144
140
  ref: ref
@@ -18,6 +18,8 @@ export interface InputPickerContextProps {
18
18
  * No overlay provides options
19
19
  */
20
20
  disabledOptions?: boolean;
21
+ /** Callback fired when a tag is removed. */
22
+ onTagRemove?: (tag: string, event: React.MouseEvent) => void;
21
23
  }
22
24
  export declare const InputPickerContext: React.Context<InputPickerContextProps>;
23
25
  interface InputItemDataType extends ItemDataType {
@@ -108,7 +108,8 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
108
108
  multi = _useContext.multi,
109
109
  tagProps = _useContext.tagProps,
110
110
  trigger = _useContext.trigger,
111
- disabledOptions = _useContext.disabledOptions;
111
+ disabledOptions = _useContext.disabledOptions,
112
+ onTagRemove = _useContext.onTagRemove;
112
113
  if (groupBy === valueKey || groupBy === labelKey) {
113
114
  throw Error('`groupBy` can not be equal to `valueKey` and `labelKey`');
114
115
  }
@@ -257,7 +258,8 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
257
258
  });
258
259
  setValue(val);
259
260
  handleChange(val, event);
260
- }, [setValue, cloneValue, handleChange]);
261
+ onTagRemove === null || onTagRemove === void 0 ? void 0 : onTagRemove(tag, event);
262
+ }, [cloneValue, setValue, handleChange, onTagRemove]);
261
263
  var handleSelect = (0, _react.useCallback)(function (value, item, event) {
262
264
  onSelect === null || onSelect === void 0 ? void 0 : onSelect(value, item, event);
263
265
  if (creatable && item.create) {
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import { InputPickerProps, TriggerType } from '../InputPicker/InputPicker';
2
3
  import type { PickerComponent } from '../Picker/types';
3
4
  import type { TagProps } from '../Tag';
@@ -10,6 +11,8 @@ export interface TagInputProps extends Omit<InputPickerProps<readonly string[]>,
10
11
  * @todo Declare as readonly array
11
12
  */
12
13
  trigger?: TriggerType | TriggerType[];
14
+ /** Callback fired when a tag is removed. */
15
+ onTagRemove?: (tag: string, event: React.MouseEvent) => void;
13
16
  }
14
17
  declare const TagInput: PickerComponent<TagInputProps>;
15
18
  export default TagInput;
@@ -16,15 +16,17 @@ var TagInput = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
16
16
  trigger = _props$trigger === void 0 ? 'Enter' : _props$trigger,
17
17
  value = props.value,
18
18
  defaultValue = props.defaultValue,
19
- rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["tagProps", "trigger", "value", "defaultValue"]);
19
+ onTagRemove = props.onTagRemove,
20
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["tagProps", "trigger", "value", "defaultValue", "onTagRemove"]);
20
21
  var contextValue = (0, _react.useMemo)(function () {
21
22
  return {
22
23
  multi: true,
23
24
  disabledOptions: true,
24
25
  trigger: trigger,
25
- tagProps: tagProps
26
+ tagProps: tagProps,
27
+ onTagRemove: onTagRemove
26
28
  };
27
- }, [tagProps, trigger]);
29
+ }, [onTagRemove, tagProps, trigger]);
28
30
  var data = (0, _react.useMemo)(function () {
29
31
  return (value || defaultValue || []).map(function (v) {
30
32
  return {
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import { InputPickerProps, TriggerType } from '../InputPicker/InputPicker';
2
3
  import type { PickerComponent } from '../Picker/types';
3
4
  import type { TagProps } from '../Tag';
@@ -8,6 +9,8 @@ export interface TagPickerProps extends InputPickerProps {
8
9
  * Set the trigger for creating tags. only valid when creatable
9
10
  */
10
11
  trigger?: TriggerType | TriggerType[];
12
+ /** Callback fired when a tag is removed. */
13
+ onTagRemove?: (tag: string, event: React.MouseEvent) => void;
11
14
  }
12
15
  declare const TagPicker: PickerComponent<TagPickerProps>;
13
16
  export default TagPicker;
@@ -14,14 +14,16 @@ var TagPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
14
14
  tagProps = _props$tagProps === void 0 ? {} : _props$tagProps,
15
15
  _props$trigger = props.trigger,
16
16
  trigger = _props$trigger === void 0 ? 'Enter' : _props$trigger,
17
- rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["tagProps", "trigger"]);
17
+ onTagRemove = props.onTagRemove,
18
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["tagProps", "trigger", "onTagRemove"]);
18
19
  var contextValue = (0, _react.useMemo)(function () {
19
20
  return {
20
21
  multi: true,
21
22
  trigger: trigger,
22
- tagProps: tagProps
23
+ tagProps: tagProps,
24
+ onTagRemove: onTagRemove
23
25
  };
24
- }, [tagProps, trigger]);
26
+ }, [onTagRemove, tagProps, trigger]);
25
27
  return /*#__PURE__*/_react.default.createElement(_InputPicker.InputPickerContext.Provider, {
26
28
  value: contextValue
27
29
  }, /*#__PURE__*/_react.default.createElement(_InputPicker.default, (0, _extends2.default)({}, rest, {