@steroidsjs/core 2.2.63 → 2.2.67

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/README.md CHANGED
@@ -1,3 +1,9 @@
1
1
  # Steroids for React
2
2
 
3
- Для справки по библиотеке обратитесь к [основной документации](docs/index.md)
3
+ Find documentation [here](docs/index.md)
4
+
5
+ ## Use package from source in project
6
+
7
+ 1. Copy `tsconfig-debug.json.sample` to `tsconfig-debug.json`
8
+ 2. Replace `outDir` path to node_modules nest path in project
9
+ 3. Run from this directory `yarn run watch`
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"));
@@ -122,15 +123,20 @@ function useAddressBar(config) {
122
123
  var dispatch = useDispatch_1["default"]();
123
124
  var updateQuery = react_1.useCallback(function (values) {
124
125
  if (config.enable) {
126
+ // Remove all 'undefined' values or empty objects/arrays from passed form values
125
127
  var normalizedValues = Object.keys(values).reduce(function (obj, key) {
126
- if (values[key] !== undefined) {
127
- obj[key] = values[key];
128
+ var value = values[key];
129
+ var isValidValue = typeof value === 'object'
130
+ ? !isEmpty_1["default"](value)
131
+ : value !== undefined;
132
+ if (isValidValue) {
133
+ obj[key] = value;
128
134
  }
129
135
  return obj;
130
136
  }, {});
131
137
  if (!isEqual_1["default"](initialQueryRef.current, normalizedValues)) {
132
138
  initialQueryRef.current = normalizedValues;
133
- dispatch(exports.queryReplace(config.model, location, values, config.useHash));
139
+ dispatch(exports.queryReplace(config.model, location, normalizedValues, config.useHash));
134
140
  }
135
141
  }
136
142
  }, [config.enable, config.model, config.useHash, dispatch, location]);
@@ -138,8 +138,7 @@ function useDataSelect(config) {
138
138
  }
139
139
  });
140
140
  newSelectedIds.sort();
141
- if (!isEqual_1["default"](prevConfigSelectedIds, newSelectedIds)
142
- && !isEqual_1["default"](selectedIds, newSelectedIds) && newSelectedIds.length !== 0) {
141
+ if (!isEqual_1["default"](prevConfigSelectedIds, newSelectedIds) && !isEqual_1["default"](selectedIds, newSelectedIds)) {
143
142
  setSelectedIdsInternal(newSelectedIds);
144
143
  }
145
144
  }, [config.selectedIds, prevConfigSelectedIds, selectedIds, selectedItems]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steroidsjs/core",
3
- "version": "2.2.63",
3
+ "version": "2.2.67",
4
4
  "description": "",
5
5
  "author": "Vladimir Kozhin <hello@kozhindev.com>",
6
6
  "repository": {
@@ -20,7 +20,8 @@
20
20
  "scripts": {
21
21
  "docs": "typedoc --ignoreCompilerErrors --json typedoc.json .",
22
22
  "test": "jest",
23
- "build": "tsc && cp ./{package.json,LICENSE,README.md} dist/ && cp src/index.d.ts dist/"
23
+ "build": "tsc && cp ./{package.json,LICENSE,README.md} dist/ && cp src/index.d.ts dist/",
24
+ "watch": "tsc -p tsconfig-debug.json"
24
25
  },
25
26
  "dependencies": {
26
27
  "axios": "^0.21.1",
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: