@steroidsjs/core 3.0.86 → 3.0.88
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/list.d.ts +4 -0
- package/docs-autogen-result.json +8 -0
- package/en.json +1 -0
- package/hooks/useList.js +9 -3
- package/package.json +1 -1
- package/reducers/list.js +4 -1
- package/ui/form/Form/Form.js +3 -3
package/actions/list.d.ts
CHANGED
|
@@ -8,6 +8,10 @@ export interface IList {
|
|
|
8
8
|
* Тип HTTP запроса (GET | POST | PUT | DELETE)
|
|
9
9
|
*/
|
|
10
10
|
actionMethod?: string;
|
|
11
|
+
/**
|
|
12
|
+
* Логическое значение, указывающее, есть ли еще элементы в списке с бесконечным скроллом
|
|
13
|
+
*/
|
|
14
|
+
hasMoreInfiniteScroll?: boolean;
|
|
11
15
|
/**
|
|
12
16
|
* Функция обратного вызова, вызываемая при получении списка.
|
|
13
17
|
*/
|
package/docs-autogen-result.json
CHANGED
|
@@ -49,6 +49,14 @@
|
|
|
49
49
|
"type": "boolean",
|
|
50
50
|
"example": null
|
|
51
51
|
},
|
|
52
|
+
{
|
|
53
|
+
"name": "hasMoreInfiniteScroll",
|
|
54
|
+
"decorators": [],
|
|
55
|
+
"description": "Логическое значение, указывающее, есть ли еще элементы в списке с бесконечным скроллом",
|
|
56
|
+
"required": false,
|
|
57
|
+
"type": "boolean",
|
|
58
|
+
"example": null
|
|
59
|
+
},
|
|
52
60
|
{
|
|
53
61
|
"name": "isFetched",
|
|
54
62
|
"decorators": [],
|
package/en.json
CHANGED
|
@@ -985,6 +985,7 @@
|
|
|
985
985
|
"Компонент, который представляет в виде дерева список с иерархической структурой данных\n\nДополнительный функционал: в кастомном view компонента есть возможность реализовать кнопку, по клику на которую\nбудет вызываться функция props.onItemFocus. Данная функция \"находит\" текущий роут в дереве -\nраскрывает родительские уровни, делает элемент активным.\nДанная функция не включает скролл к активному компоненту внутри дерева, это также необходимо\nреализовать в кастомном view локально в проекте.\n": "",
|
|
986
986
|
"Значение страницы по умолчанию.": "",
|
|
987
987
|
"Логическое значение, указывающее, можно ли загрузить еще элементы для списка при скролле.": "",
|
|
988
|
+
"Логическое значение, указывающее, есть ли еще элементы в списке с бесконечным скроллом": "",
|
|
988
989
|
"Сигнал, запрещающий отправку запроса на получение данных": "",
|
|
989
990
|
" Ref autocomplete поиска": "",
|
|
990
991
|
"Нужно ли закрывать выпадающий список после выбора элемента": "",
|
package/hooks/useList.js
CHANGED
|
@@ -148,9 +148,15 @@ function useList(config) {
|
|
|
148
148
|
// InfiniteScroll
|
|
149
149
|
var InfiniteScroll = require('../ui/list/InfiniteScroll')["default"];
|
|
150
150
|
var infiniteScrollProps = (0, InfiniteScroll_1.normalizeInfiniteScrollProps)(config.infiniteScroll);
|
|
151
|
-
var renderInfiniteScroll = function () {
|
|
152
|
-
|
|
153
|
-
|
|
151
|
+
var renderInfiniteScroll = function () {
|
|
152
|
+
if (!infiniteScrollProps.enable || (list === null || list === void 0 ? void 0 : list.isLoading) || !(list === null || list === void 0 ? void 0 : list.isFetched)) {
|
|
153
|
+
return null;
|
|
154
|
+
}
|
|
155
|
+
if (!list.hasMoreInfiniteScroll) {
|
|
156
|
+
return null;
|
|
157
|
+
}
|
|
158
|
+
return (react_1["default"].createElement(InfiniteScroll, __assign({ list: list }, infiniteScrollProps, { sizeAttribute: infiniteScrollProps.attribute })));
|
|
159
|
+
};
|
|
154
160
|
// Layout switcher
|
|
155
161
|
var LayoutNames = require('../ui/list/LayoutNames')["default"];
|
|
156
162
|
var layoutNamesProps = (0, LayoutNames_1.normalizeLayoutNamesProps)(config.layout);
|
package/package.json
CHANGED
package/reducers/list.js
CHANGED
|
@@ -73,7 +73,10 @@ var reducerMap = (_a = {},
|
|
|
73
73
|
else {
|
|
74
74
|
items = [].concat(action.items);
|
|
75
75
|
}
|
|
76
|
-
|
|
76
|
+
var hasMoreInfiniteScroll = list.hasInfiniteScroll
|
|
77
|
+
? action.items.length === action.pageSize
|
|
78
|
+
: false;
|
|
79
|
+
return __assign(__assign({}, state), { lists: __assign(__assign({}, state.lists), (_a = {}, _a[action.listId] = __assign(__assign(__assign({}, list), action), { items: items, hasMoreInfiniteScroll: hasMoreInfiniteScroll, isFetched: true, isLoading: false }), _a)) });
|
|
77
80
|
},
|
|
78
81
|
_a[list_1.LIST_ITEM_ADD] = function (state, action) {
|
|
79
82
|
var _a;
|
package/ui/form/Form/Form.js
CHANGED
|
@@ -218,12 +218,12 @@ function Form(props) {
|
|
|
218
218
|
});
|
|
219
219
|
// Clean
|
|
220
220
|
cleanedValues = (0, form_1.cleanEmptyObject)(cleanedValues);
|
|
221
|
-
|
|
222
|
-
if (props.onBeforeSubmit && props.onBeforeSubmit.call(null, cleanedValues) === false) {
|
|
221
|
+
if (props.validator && props.validator.call(null, cleanedValues) === false) {
|
|
223
222
|
dispatch((0, form_2.formSetSubmitting)(props.formId, false));
|
|
224
223
|
return [2 /*return*/, null];
|
|
225
224
|
}
|
|
226
|
-
|
|
225
|
+
// Event onBeforeSubmit
|
|
226
|
+
if (props.onBeforeSubmit && props.onBeforeSubmit.call(null, cleanedValues) === false) {
|
|
227
227
|
dispatch((0, form_2.formSetSubmitting)(props.formId, false));
|
|
228
228
|
return [2 /*return*/, null];
|
|
229
229
|
}
|