@steroidsjs/core 3.0.87 → 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 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
  */
@@ -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 () { return infiniteScrollProps.enable && (list === null || list === void 0 ? void 0 : list.isFetched) && !(list === null || list === void 0 ? void 0 : list.isLoading)
152
- ? (react_1["default"].createElement(InfiniteScroll, __assign({ list: list }, infiniteScrollProps, { sizeAttribute: infiniteScrollProps.attribute })))
153
- : null; };
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steroidsjs/core",
3
- "version": "3.0.87",
3
+ "version": "3.0.88",
4
4
  "description": "",
5
5
  "author": "Vladimir Kozhin <hello@kozhindev.com>",
6
6
  "repository": {
package/reducers/list.js CHANGED
@@ -73,7 +73,10 @@ var reducerMap = (_a = {},
73
73
  else {
74
74
  items = [].concat(action.items);
75
75
  }
76
- return __assign(__assign({}, state), { lists: __assign(__assign({}, state.lists), (_a = {}, _a[action.listId] = __assign(__assign(__assign({}, list), action), { items: items, isFetched: true, isLoading: false }), _a)) });
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;