@steroidsjs/core 2.2.61 → 2.2.65

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/actions/form.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export declare const FORM_INITIALIZE = "@form/initialize";
2
2
  export declare const FORM_CHANGE = "@form/change";
3
3
  export declare const FORM_RESET = "@form/reset";
4
+ export declare const FORM_HARD_RESET = "@form/hard_reset";
4
5
  export declare const FORM_DESTROY = "@form/destroy";
5
6
  export declare const FORM_SET_ERRORS = "@form/set_errors";
6
7
  export declare const FORM_SUBMIT = "@form/submit";
@@ -65,6 +66,14 @@ export declare const formReset: (formId: any) => {
65
66
  type: string;
66
67
  formId: any;
67
68
  };
69
+ /**
70
+ * Сброс данных формы, включая первоначальное состояние (initialValues)
71
+ * @param formId
72
+ */
73
+ export declare const formHardReset: (formId: any) => {
74
+ type: string;
75
+ formId: any;
76
+ };
68
77
  /**
69
78
  * Удаление данных формы из redux хранилища
70
79
  * @param formId
package/actions/form.js CHANGED
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  exports.__esModule = true;
3
- exports.formArrayRemove = exports.formArrayAdd = exports.formDestroy = exports.formReset = exports.formSetSubmitting = exports.formSubmit = exports.formSetErrors = exports.formChange = exports.formInitialize = exports.FORM_ARRAY_REMOVE = exports.FORM_ARRAY_ADD = exports.FORM_SET_SUBMITTING = exports.FORM_SUBMIT = exports.FORM_SET_ERRORS = exports.FORM_DESTROY = exports.FORM_RESET = exports.FORM_CHANGE = exports.FORM_INITIALIZE = void 0;
3
+ exports.formArrayRemove = exports.formArrayAdd = exports.formDestroy = exports.formHardReset = exports.formReset = exports.formSetSubmitting = exports.formSubmit = exports.formSetErrors = exports.formChange = exports.formInitialize = exports.FORM_ARRAY_REMOVE = exports.FORM_ARRAY_ADD = exports.FORM_SET_SUBMITTING = exports.FORM_SUBMIT = exports.FORM_SET_ERRORS = exports.FORM_DESTROY = exports.FORM_HARD_RESET = exports.FORM_RESET = exports.FORM_CHANGE = exports.FORM_INITIALIZE = void 0;
4
4
  exports.FORM_INITIALIZE = '@form/initialize';
5
5
  exports.FORM_CHANGE = '@form/change';
6
6
  exports.FORM_RESET = '@form/reset';
7
+ exports.FORM_HARD_RESET = '@form/hard_reset';
7
8
  exports.FORM_DESTROY = '@form/destroy';
8
9
  exports.FORM_SET_ERRORS = '@form/set_errors';
9
10
  exports.FORM_SUBMIT = '@form/submit';
@@ -77,6 +78,15 @@ var formReset = function (formId) { return ({
77
78
  formId: formId
78
79
  }); };
79
80
  exports.formReset = formReset;
81
+ /**
82
+ * Сброс данных формы, включая первоначальное состояние (initialValues)
83
+ * @param formId
84
+ */
85
+ var formHardReset = function (formId) { return ({
86
+ type: exports.FORM_HARD_RESET,
87
+ formId: formId
88
+ }); };
89
+ exports.formHardReset = formHardReset;
80
90
  /**
81
91
  * Удаление данных формы из redux хранилища
82
92
  * @param formId
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  exports.__esModule = true;
6
6
  exports.queryReplace = exports.queryRestore = exports.defaultToStringConverter = exports.defaultFromStringConverter = void 0;
7
7
  var get_1 = __importDefault(require("lodash-es/get"));
8
+ var isEmpty_1 = __importDefault(require("lodash-es/isEmpty"));
8
9
  var query_string_1 = __importDefault(require("query-string"));
9
10
  var connected_react_router_1 = require("connected-react-router");
10
11
  var toInteger_1 = __importDefault(require("lodash-es/toInteger"));
@@ -123,14 +124,14 @@ function useAddressBar(config) {
123
124
  var updateQuery = react_1.useCallback(function (values) {
124
125
  if (config.enable) {
125
126
  var normalizedValues = Object.keys(values).reduce(function (obj, key) {
126
- if (values[key] !== undefined) {
127
+ if (values[key] !== undefined && !isEmpty_1["default"](values[key])) {
127
128
  obj[key] = values[key];
128
129
  }
129
130
  return obj;
130
131
  }, {});
131
132
  if (!isEqual_1["default"](initialQueryRef.current, normalizedValues)) {
132
133
  initialQueryRef.current = normalizedValues;
133
- dispatch(exports.queryReplace(config.model, location, values, config.useHash));
134
+ dispatch(exports.queryReplace(config.model, location, normalizedValues, config.useHash));
134
135
  }
135
136
  }
136
137
  }, [config.enable, config.model, config.useHash, dispatch, location]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steroidsjs/core",
3
- "version": "2.2.61",
3
+ "version": "2.2.65",
4
4
  "description": "",
5
5
  "author": "Vladimir Kozhin <hello@kozhindev.com>",
6
6
  "repository": {
package/reducers/form.js CHANGED
@@ -53,6 +53,8 @@ function reducerItem(state, action) {
53
53
  return dot_prop_immutable_1.set(state, 'isSubmitting', action.isSubmitting);
54
54
  case form_1.FORM_RESET:
55
55
  return __assign(__assign({}, state), { values: cloneDeep_1["default"](state.initialValues || {}) });
56
+ case form_1.FORM_HARD_RESET:
57
+ return __assign(__assign({}, state), { initialValues: null, values: {}, errors: {}, isInvalid: false, isSubmitting: false });
56
58
  case form_1.FORM_DESTROY:
57
59
  return null;
58
60
  case form_1.FORM_ARRAY_ADD:
@@ -25,12 +25,16 @@ export interface IModalProps {
25
25
  */
26
26
  controls?: IControlItem[];
27
27
  /**
28
- * Время, через которое произойдет закрытие Modal.
29
- * В этот отрезок времени должны происходить все анимации закрытия компонента.
28
+ * Время, в течение которого будет происходить анимация закрытия Modal.
30
29
  * Переопределяет отрезок времени, заданный в ModalPortal
31
30
  * @example 300
32
31
  */
33
32
  closeTimeoutMs?: number;
33
+ /**
34
+ * Время в миллисекундах, через которое автоматически произойдет закрытие Modal.
35
+ * @example 1000
36
+ */
37
+ closeAfterMs?: number;
34
38
  /**
35
39
  * Группа Modal
36
40
  * @example 'modal'
@@ -36,6 +36,11 @@ function Modal(props) {
36
36
  var components = hooks_1.useComponents();
37
37
  var ModalView = props.view || components.ui.getView('modal.ModalView');
38
38
  var ContentComponent = props.component;
39
+ React.useEffect(function () {
40
+ if (props.closeAfterMs) {
41
+ setTimeout(function () { return props.onClose(); }, props.closeAfterMs);
42
+ }
43
+ }, []);
39
44
  return (React.createElement(ModalView, __assign({}, props), (ContentComponent && (React.createElement(ContentComponent, __assign({}, props, props.componentProps)))) || (props.children)));
40
45
  }
41
46
  Modal.defaultProps = {