@steroidsjs/core 2.2.25 → 2.2.28

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
@@ -3,6 +3,7 @@ export declare const FORM_CHANGE = "@form/change";
3
3
  export declare const FORM_RESET = "@form/reset";
4
4
  export declare const FORM_SET_ERRORS = "@form/set_errors";
5
5
  export declare const FORM_SUBMIT = "@form/submit";
6
+ export declare const FORM_SET_SUBMITTING = "@form/set_submitting";
6
7
  export declare const FORM_ARRAY_ADD = "@form/array_add";
7
8
  export declare const FORM_ARRAY_REMOVE = "@form/array_remove";
8
9
  /**
@@ -45,6 +46,16 @@ export declare const formSubmit: (formId: any) => {
45
46
  type: string;
46
47
  formId: any;
47
48
  };
49
+ /**
50
+ * Установить состояние отправки формы
51
+ * @param formId
52
+ * @param isSubmitting
53
+ */
54
+ export declare const formSetSubmitting: (formId: any, isSubmitting: any) => {
55
+ type: string;
56
+ formId: any;
57
+ isSubmitting: any;
58
+ };
48
59
  /**
49
60
  * Сброс данных формы к первоначальному состоянию (к initialValues)
50
61
  * @param formId
package/actions/form.js CHANGED
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
2
  exports.__esModule = true;
3
- exports.formArrayRemove = exports.formArrayAdd = exports.formReset = exports.formSubmit = exports.formSetErrors = exports.formChange = exports.formInitialize = exports.FORM_ARRAY_REMOVE = exports.FORM_ARRAY_ADD = exports.FORM_SUBMIT = exports.FORM_SET_ERRORS = exports.FORM_RESET = exports.FORM_CHANGE = exports.FORM_INITIALIZE = void 0;
3
+ exports.formArrayRemove = exports.formArrayAdd = 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_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
7
  exports.FORM_SET_ERRORS = '@form/set_errors';
8
8
  exports.FORM_SUBMIT = '@form/submit';
9
+ exports.FORM_SET_SUBMITTING = '@form/set_submitting';
9
10
  exports.FORM_ARRAY_ADD = '@form/array_add';
10
11
  exports.FORM_ARRAY_REMOVE = '@form/array_remove';
11
12
  /**
@@ -55,6 +56,17 @@ var formSubmit = function (formId) { return ({
55
56
  formId: formId
56
57
  }); };
57
58
  exports.formSubmit = formSubmit;
59
+ /**
60
+ * Установить состояние отправки формы
61
+ * @param formId
62
+ * @param isSubmitting
63
+ */
64
+ var formSetSubmitting = function (formId, isSubmitting) { return ({
65
+ type: exports.FORM_SET_SUBMITTING,
66
+ formId: formId,
67
+ isSubmitting: isSubmitting
68
+ }); };
69
+ exports.formSetSubmitting = formSetSubmitting;
58
70
  /**
59
71
  * Сброс данных формы к первоначальному состоянию (к initialValues)
60
72
  * @param formId
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steroidsjs/core",
3
- "version": "2.2.25",
3
+ "version": "2.2.28",
4
4
  "description": "",
5
5
  "author": "Vladimir Kozhin <hello@kozhindev.com>",
6
6
  "repository": {
package/reducers/form.js CHANGED
@@ -49,6 +49,8 @@ function reducerItem(state, action) {
49
49
  return dot_prop_immutable_1.set(state, 'errors', action.errors);
50
50
  case form_1.FORM_SUBMIT:
51
51
  return dot_prop_immutable_1.set(state, 'submitCounter', (state.submitCounter || 0) + 1);
52
+ case form_1.FORM_SET_SUBMITTING:
53
+ return dot_prop_immutable_1.set(state, 'isSubmitting', action.isSubmitting);
52
54
  case form_1.FORM_RESET:
53
55
  return __assign(__assign({}, state), { values: cloneDeep_1["default"](state.initialValues || {}) });
54
56
  case form_1.FORM_ARRAY_ADD:
@@ -1,9 +1,10 @@
1
+ import { DayPickerProps } from 'react-day-picker';
1
2
  export interface ICalendarProps {
2
3
  /**
3
4
  * Значение задает выбранные в календаре дату или диапазон дат.
4
5
  * Необходимо передать валидную дату в виде строки (массива строк)
5
6
  */
6
- value: string | string[];
7
+ value?: string | string[];
7
8
  /**
8
9
  * Формат даты отправляемый на сервер
9
10
  * @example YYYY-MM-DD
@@ -17,7 +18,7 @@ export interface ICalendarProps {
17
18
  * Свойства для компонента DayPickerInput
18
19
  * @example {dayPickerProps: {showWeekNumbers: true}}
19
20
  */
20
- pickerProps?: any;
21
+ pickerProps?: DayPickerProps | any;
21
22
  /**
22
23
  * Переопределение view React компонента для кастомизации отображения
23
24
  * @example MyCustomView
@@ -38,7 +38,7 @@ function Calendar(props) {
38
38
  var onMonthSelect = react_1.useCallback(function (newMonth) {
39
39
  setMonth(newMonth);
40
40
  }, []);
41
- return components.ui.renderView(props.view || 'content.CalendarView', __assign(__assign({}, props.viewProps), { month: month,
41
+ return components.ui.renderView(props.view || 'content.CalendarView', __assign(__assign(__assign({}, props.viewProps), props.pickerProps), { month: month,
42
42
  toYear: toYear,
43
43
  fromYear: fromYear,
44
44
  onDaySelect: onDaySelect,
@@ -123,6 +123,7 @@ function Button(props) {
123
123
  isFailed: isFailed,
124
124
  isLoading: isLoading,
125
125
  disabled: disabled,
126
+ submitting: submitting,
126
127
  tag: tag, formId: (context === null || context === void 0 ? void 0 : context.formId) || null, url: url || (tag === 'a' ? '#' : null), onClick: !disabled ? onClick : undefined, children: props.label || props.children }));
127
128
  if (layout) {
128
129
  return (React.createElement(FieldLayout_1["default"], { layout: layout }, button));
@@ -81,6 +81,7 @@ var AutoSaveHelper_1 = __importDefault(require("./AutoSaveHelper"));
81
81
  var hooks_1 = require("../../../hooks");
82
82
  var form_1 = require("../../../utils/form");
83
83
  var validate_1 = __importDefault(require("../validate"));
84
+ var form_2 = require("../../../actions/form");
84
85
  exports.FormContext = React.createContext({});
85
86
  var getCaptchaToken = function (params) {
86
87
  var googleCaptcha = params.googleCaptcha, siteKey = params.siteKey, _a = params.actionName, actionName = _a === void 0 ? 'submit' : _a;
@@ -163,6 +164,7 @@ function Form(props) {
163
164
  return __generator(this, function (_c) {
164
165
  switch (_c.label) {
165
166
  case 0:
167
+ dispatch(form_2.formSetSubmitting(props.formId, true));
166
168
  // TODO
167
169
  if (e) {
168
170
  e.preventDefault();
@@ -243,6 +245,7 @@ function Form(props) {
243
245
  _c.label = 7;
244
246
  case 7:
245
247
  response = _a;
248
+ dispatch(form_2.formSetSubmitting(props.formId, false));
246
249
  // Skip on 2fa
247
250
  if (response.twoFactor) {
248
251
  return [2 /*return*/, null];
@@ -268,7 +271,7 @@ function Form(props) {
268
271
  }
269
272
  });
270
273
  });
271
- }, [components.api, components.http, components.resource, components.ui, props, setErrors, values]);
274
+ }, [components.api, components.http, components.resource, components.ui, props, setErrors, values, dispatch]);
272
275
  // Manual submit form by reducer action
273
276
  var prevSubmitCounter = react_use_1.usePrevious(submitCounter);
274
277
  react_use_1.useUpdateEffect(function () {