@steroidsjs/core 3.0.43 → 3.0.44
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/docs-autogen-result.json
CHANGED
|
@@ -17467,6 +17467,15 @@
|
|
|
17467
17467
|
"example": "{width: '45%'}",
|
|
17468
17468
|
"defaultValue": null
|
|
17469
17469
|
},
|
|
17470
|
+
{
|
|
17471
|
+
"name": "useSmartFocus",
|
|
17472
|
+
"decorators": [],
|
|
17473
|
+
"description": "Перемещать ли фокус на пустое после заполнения",
|
|
17474
|
+
"required": false,
|
|
17475
|
+
"type": "boolean",
|
|
17476
|
+
"example": "true",
|
|
17477
|
+
"defaultValue": null
|
|
17478
|
+
},
|
|
17470
17479
|
{
|
|
17471
17480
|
"name": "useUTC",
|
|
17472
17481
|
"decorators": [],
|
package/en.json
CHANGED
|
@@ -1006,6 +1006,7 @@
|
|
|
1006
1006
|
"Пропсы для отображения элемента": "",
|
|
1007
1007
|
"Отображать чекбоксы только на узлах, не имеющих вложенных элементов": "",
|
|
1008
1008
|
"View компонент для элемента дерева": "",
|
|
1009
|
+
"Перемещать ли фокус на пустое после заполнения": "",
|
|
1009
1010
|
"Разделитель для даты и времени, не влияет на отображение": "",
|
|
1010
1011
|
"Нужно ли подгружать данные после закрытия DropDown": "",
|
|
1011
1012
|
"Начальные элементы списка": "",
|
package/package.json
CHANGED
|
@@ -19,6 +19,7 @@ var react_use_1 = require("react-use");
|
|
|
19
19
|
var isNil_1 = __importDefault(require("lodash-es/isNil"));
|
|
20
20
|
var dayjs_1 = __importDefault(require("dayjs"));
|
|
21
21
|
var calendar_1 = require("@steroidsjs/core/utils/calendar");
|
|
22
|
+
var isOneRangeValueEmpty = function (valueFrom, valueTo) { return !valueFrom || !valueTo; };
|
|
22
23
|
function useDateRange(props) {
|
|
23
24
|
// Tracking focus for input being edited
|
|
24
25
|
var _a = (0, react_1.useState)('from'), focus = _a[0], setFocus = _a[1];
|
|
@@ -65,7 +66,7 @@ function useDateRange(props) {
|
|
|
65
66
|
if ((0, isNil_1["default"])(props.inputFrom.value) && (0, isNil_1["default"])(props.inputTo.value)) {
|
|
66
67
|
return;
|
|
67
68
|
}
|
|
68
|
-
if (props.useSmartFocus) {
|
|
69
|
+
if (props.useSmartFocus && isOneRangeValueEmpty(props.inputFrom.value, props.inputTo.value)) {
|
|
69
70
|
if (focus === 'from' && !valueToRef.current && prevValueFrom !== props.inputFrom.value) {
|
|
70
71
|
valueFromRef.current = props.inputFrom.value;
|
|
71
72
|
inputToRef.current.focus();
|
|
@@ -74,6 +74,11 @@ export interface IDateRangeFieldProps extends IDateInputStateInput, Omit<IFieldW
|
|
|
74
74
|
* @example true
|
|
75
75
|
*/
|
|
76
76
|
hasInitialFocus?: boolean;
|
|
77
|
+
/**
|
|
78
|
+
* Перемещать ли фокус на пустое после заполнения
|
|
79
|
+
* @example true
|
|
80
|
+
*/
|
|
81
|
+
useSmartFocus?: boolean;
|
|
77
82
|
/**
|
|
78
83
|
* Опции маски для полей
|
|
79
84
|
*/
|
|
@@ -79,7 +79,7 @@ function DateRangeField(props) {
|
|
|
79
79
|
inputPropsTo: inputPropsTo,
|
|
80
80
|
inputFrom: props.inputFrom,
|
|
81
81
|
inputTo: props.inputTo,
|
|
82
|
-
useSmartFocus:
|
|
82
|
+
useSmartFocus: props.useSmartFocus,
|
|
83
83
|
hasInitialFocus: props.hasInitialFocus,
|
|
84
84
|
displayFormat: props.displayFormat,
|
|
85
85
|
valueFormat: props.valueFormat
|
|
@@ -130,6 +130,7 @@ DateRangeField.defaultProps = {
|
|
|
130
130
|
displayFormat: 'DD.MM.YYYY',
|
|
131
131
|
valueFormat: 'YYYY-MM-DD',
|
|
132
132
|
showRemove: true,
|
|
133
|
+
useSmartFocus: true,
|
|
133
134
|
hasInitialFocus: false,
|
|
134
135
|
icon: true,
|
|
135
136
|
maskOptions: {
|