@steroidsjs/core 3.0.83 → 3.0.84

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.
@@ -3182,6 +3182,14 @@
3182
3182
  "type": "number[]",
3183
3183
  "example": "[1, 22]"
3184
3184
  },
3185
+ {
3186
+ "name": "isFetchDisabled",
3187
+ "decorators": [],
3188
+ "description": "Сигнал, запрещающий отправку запроса на получение данных",
3189
+ "required": false,
3190
+ "type": "boolean",
3191
+ "example": null
3192
+ },
3185
3193
  {
3186
3194
  "name": "items",
3187
3195
  "decorators": [],
@@ -13916,6 +13924,15 @@
13916
13924
  "example": null,
13917
13925
  "defaultValue": null
13918
13926
  },
13927
+ {
13928
+ "name": "isFetchDisabled",
13929
+ "decorators": [],
13930
+ "description": "Сигнал, запрещающий отправку запроса на получение данных",
13931
+ "required": false,
13932
+ "type": "boolean",
13933
+ "example": null,
13934
+ "defaultValue": null
13935
+ },
13919
13936
  {
13920
13937
  "name": "isRenderWithoutFieldLayout",
13921
13938
  "decorators": [],
@@ -15765,6 +15782,15 @@
15765
15782
  "example": null,
15766
15783
  "defaultValue": null
15767
15784
  },
15785
+ {
15786
+ "name": "isFetchDisabled",
15787
+ "decorators": [],
15788
+ "description": "Сигнал, запрещающий отправку запроса на получение данных",
15789
+ "required": false,
15790
+ "type": "boolean",
15791
+ "example": null,
15792
+ "defaultValue": null
15793
+ },
15768
15794
  {
15769
15795
  "name": "isRenderWithoutFieldLayout",
15770
15796
  "decorators": [],
@@ -16348,6 +16374,15 @@
16348
16374
  "example": null,
16349
16375
  "defaultValue": null
16350
16376
  },
16377
+ {
16378
+ "name": "isFetchDisabled",
16379
+ "decorators": [],
16380
+ "description": "Сигнал, запрещающий отправку запроса на получение данных",
16381
+ "required": false,
16382
+ "type": "boolean",
16383
+ "example": null,
16384
+ "defaultValue": null
16385
+ },
16351
16386
  {
16352
16387
  "name": "isRenderWithoutFieldLayout",
16353
16388
  "decorators": [],
@@ -19426,6 +19461,15 @@
19426
19461
  "example": null,
19427
19462
  "defaultValue": null
19428
19463
  },
19464
+ {
19465
+ "name": "isFetchDisabled",
19466
+ "decorators": [],
19467
+ "description": "Сигнал, запрещающий отправку запроса на получение данных",
19468
+ "required": false,
19469
+ "type": "boolean",
19470
+ "example": null,
19471
+ "defaultValue": null
19472
+ },
19429
19473
  {
19430
19474
  "name": "isFetchOnClose",
19431
19475
  "decorators": [],
@@ -19725,6 +19769,15 @@
19725
19769
  }
19726
19770
  ]
19727
19771
  },
19772
+ {
19773
+ "name": "onOpen",
19774
+ "decorators": [],
19775
+ "description": "Callback-функция, которая вызывается при открытии DropDown",
19776
+ "required": false,
19777
+ "type": "void",
19778
+ "example": null,
19779
+ "parameters": []
19780
+ },
19728
19781
  {
19729
19782
  "name": "onReset",
19730
19783
  "decorators": [],
@@ -19923,6 +19976,14 @@
19923
19976
  "type": "boolean",
19924
19977
  "example": null
19925
19978
  },
19979
+ {
19980
+ "name": "isFetchDisabled",
19981
+ "decorators": [],
19982
+ "description": "Сигнал, запрещающий отправку запроса на получение данных",
19983
+ "required": false,
19984
+ "type": "boolean",
19985
+ "example": null
19986
+ },
19926
19987
  {
19927
19988
  "name": "isFetchOnClose",
19928
19989
  "decorators": [],
@@ -20247,7 +20308,7 @@
20247
20308
  {
20248
20309
  "name": "onOpen",
20249
20310
  "decorators": [],
20250
- "description": "",
20311
+ "description": "Callback-функция, которая вызывается при открытии DropDown",
20251
20312
  "required": false,
20252
20313
  "type": "void",
20253
20314
  "example": null,
@@ -26479,6 +26540,15 @@
26479
26540
  "example": null,
26480
26541
  "defaultValue": null
26481
26542
  },
26543
+ {
26544
+ "name": "isFetchDisabled",
26545
+ "decorators": [],
26546
+ "description": "Сигнал, запрещающий отправку запроса на получение данных",
26547
+ "required": false,
26548
+ "type": "boolean",
26549
+ "example": null,
26550
+ "defaultValue": null
26551
+ },
26482
26552
  {
26483
26553
  "name": "isRenderWithoutFieldLayout",
26484
26554
  "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
  " Ref autocomplete поиска": "",
989
990
  "Нужно ли закрывать выпадающий список после выбора элемента": "",
990
991
  "Ref для drop area": "",
@@ -104,6 +104,10 @@ export interface IDataProviderConfig {
104
104
  * @example [1, 22]
105
105
  */
106
106
  initialSelectedIds?: number[];
107
+ /**
108
+ * Сигнал, запрещающий отправку запроса на получение данных
109
+ */
110
+ isFetchDisabled?: boolean;
107
111
  }
108
112
  export interface IDataProviderResult {
109
113
  fetchRemote: ((isAuto: boolean) => Promise<void>) | null;
@@ -165,6 +165,9 @@ function useDataProvider(config) {
165
165
  setItems(config.query ? (0, text_1.smartSearch)(config.query, sourceItems) : sourceItems);
166
166
  return;
167
167
  }
168
+ if (config.isFetchDisabled) {
169
+ return;
170
+ }
168
171
  if (config.autoFetch && !isAutoFetchedRef.current) {
169
172
  isAutoFetchedRef.current = true;
170
173
  fetchRemote(true);
@@ -187,7 +190,8 @@ function useDataProvider(config) {
187
190
  }
188
191
  }
189
192
  }, [autoComplete, components.http, config.autoFetch, config.dataProvider, config.initialSelectedIds, config.query, dataProvider,
190
- dataProvider.action, dataProvider.onSearch, fetchRemote, prevAction, prevParams, prevQuery, prevValues, setSourceItems, sourceItems]);
193
+ dataProvider.action, dataProvider.onSearch, fetchRemote, prevAction, prevParams, prevQuery, prevValues, setSourceItems, sourceItems,
194
+ config.isFetchDisabled]);
191
195
  return {
192
196
  fetchRemote: config.dataProvider && fetchRemote,
193
197
  sourceItems: sourceItems,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steroidsjs/core",
3
- "version": "3.0.83",
3
+ "version": "3.0.84",
4
4
  "description": "",
5
5
  "author": "Vladimir Kozhin <hello@kozhindev.com>",
6
6
  "repository": {
@@ -43,6 +43,10 @@ export interface IAutoCompleteFieldProps extends IBaseFieldProps, IDataProviderC
43
43
  * @example '; '
44
44
  */
45
45
  multipleSeparator?: string;
46
+ /**
47
+ * Сигнал, запрещающий отправку запроса на получение данных
48
+ */
49
+ isFetchDisabled?: boolean;
46
50
  }
47
51
  export interface IAutoCompleteFieldViewProps extends Omit<IAutoCompleteFieldProps, 'items'> {
48
52
  items: IAutoCompleteItem[];
@@ -42,7 +42,8 @@ function AutoCompleteField(props) {
42
42
  autoComplete: props.autoComplete,
43
43
  autoFetch: props.autoFetch,
44
44
  initialSelectedIds: props.selectedIds,
45
- query: query
45
+ query: query,
46
+ isFetchDisabled: props.isFetchDisabled
46
47
  }), items = _b.items, isLoading = _b.isLoading, sourceItems = _b.sourceItems;
47
48
  // Data select
48
49
  var _c = (0, hooks_1.useDataSelect)({
@@ -166,6 +166,14 @@ export interface IDropDownFieldProps extends IFieldWrapperInputProps, Omit<IData
166
166
  * Число в пикселях, больше которого не может быть выпадающее меню
167
167
  */
168
168
  maxHeight?: number;
169
+ /**
170
+ * Callback-функция, которая вызывается при открытии DropDown
171
+ */
172
+ onOpen?: () => void;
173
+ /**
174
+ * Сигнал, запрещающий отправку запроса на получение данных
175
+ */
176
+ isFetchDisabled?: boolean;
169
177
  [key: string]: any;
170
178
  }
171
179
  export interface IDropDownFieldViewProps extends IDropDownFieldProps {
@@ -120,7 +120,8 @@ function DropDownField(props) {
120
120
  autoComplete: props.autoComplete,
121
121
  autoFetch: props.autoFetch,
122
122
  query: query,
123
- initialSelectedIds: inputSelectedIds
123
+ initialSelectedIds: inputSelectedIds,
124
+ isFetchDisabled: props.isFetchDisabled
124
125
  }), fetchRemote = _c.fetchRemote, items = _c.items, isLoading = _c.isLoading, isAutoComplete = _c.isAutoComplete, sourceItems = _c.sourceItems, dataProvider = __rest(_c, ["fetchRemote", "items", "isLoading", "isAutoComplete", "sourceItems"]);
125
126
  // Data select
126
127
  var _d = (0, hooks_1.useDataSelect)({
@@ -136,11 +137,15 @@ function DropDownField(props) {
136
137
  hasCloseOnSelect: props.hasCloseOnSelect
137
138
  }), isOpened = _d.isOpened, setIsOpened = _d.setIsOpened, setIsFocused = _d.setIsFocused, hoveredId = _d.hoveredId, setHoveredId = _d.setHoveredId, selectedIds = _d.selectedIds, setSelectedIds = _d.setSelectedIds, selectedItems = _d.selectedItems, setSelectedAll = _d.setSelectedAll, isSelectedAll = _d.isSelectedAll;
138
139
  var onOpen = (0, react_1.useCallback)(function () {
140
+ // setIsLazyLoadEnabled(true);
139
141
  setQuery('');
140
142
  setIsFocused(true);
141
143
  setIsOpened(true);
142
144
  setHoveredId(null);
143
- }, [setHoveredId, setIsFocused, setIsOpened]);
145
+ if (props.onOpen) {
146
+ props.onOpen();
147
+ }
148
+ }, [setHoveredId, setIsFocused, setIsOpened, props.onOpen]);
144
149
  var onItemHover = (0, react_1.useCallback)(function (id) {
145
150
  setHoveredId(id);
146
151
  }, [setHoveredId]);