@steroidsjs/core 3.0.92 → 3.0.93

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/en.json CHANGED
@@ -1044,10 +1044,16 @@
1044
1044
  "\nКомпонент `Kanban` позволяет создать доску для управления задачами.\nКоличество столбцов задается с помощью пропа `columns`.\nЗадачи на доске можно создавать, редактировать и перемещать с визуальным отображением.\n\nДля работы этого компонента необходимо установить в проекте зависимости `react-beautiful-dnd`\nи передать в пропсы `droppableComponent`, `draggableComponent` и `dndContext`\nкомпоненты `Droppable`, `Draggable` и `DragDropContext` соответственно.\n\nДля корректной работы функционала создания задач,\nнеобходимо установить в проекте зависимости `@ckeditor/ckeditor5-react v3.0.2` и `@steroidsjs/ckeditor5 v27.0.2-rc.2`,\nзатем импортировать `CKEditor` из `@ckeditor/ckeditor5-react` и `ClassicEditor` из `@steroidsjs/ckeditor5/packages/ckeditor5-build-classic`.\nИмпортированные компоненты нужно передать в проп `createTaskEditorConfig`,\nв поле `htmlComponent` передать `CKEditor`, а в `editorConstructor` передать `ClassicEditor`.\n": "The `Kanban` component allows you to create a board for task management.\nThe number of columns is set using the `columns` prop.\nTasks on the board can be created, edited, and moved with visual feedback.\n\nFor this component to work, you must install the `react-beautiful-dnd` dependencies in your project\nand pass the `Droppable`, `Draggable`, and `DragDropContext` components to the `droppableComponent`, `draggableComponent`, and `dndContext` props, respectively.\n\nFor the task creation functionality to work correctly,\nyou need to install the `@ckeditor/ckeditor5-react v3.0.2` and `@steroidsjs/ckeditor5 v27.0.2-rc.2` dependencies in your project,\nthen import `CKEditor` from `@ckeditor/ckeditor5-react` and `ClassicEditor` from `@steroidsjs/ckeditor5/packages/ckeditor5-build-classic`.\nPass the imported components to the `createTaskEditorConfig` prop,\nproviding `CKEditor` to the `htmlComponent` field and `ClassicEditor` to `editorConstructor`.",
1045
1045
  "\nКомпонент поля ввода текста с маской.\n": "A text input field component with a mask.",
1046
1046
  "\nКомпонент Tooltip предоставляет всплывающую подсказку для дочерних элементов.\nВнутри компонента, то есть между тегами Tooltip можно использовать только html теги, например div, span и тд\n": "The Tooltip component provides a popup hint for child elements.\nInside the component, that is, between the Tooltip tags, you can only use HTML tags, e.g., div, span, etc.",
1047
- "Логическое значение, указывающее, есть ли еще элементы в списке с бесконечным скроллом": "",
1048
- "Позволяет использовать cookie на всех поддоменах (по умолчанию, false)": "",
1049
- "Задержка в мс": "",
1050
- "Дополнительное содержание сообщения.": "",
1051
- "Задержка применения введённого значения": "",
1052
- "Флаг, который указывает, что высота поля должна быть равна высоте контента": ""
1047
+ "\nСписок с радиокнопками. Используется в формах для выбора одного значения.\n": "\nRadio button list. Used in forms to select a single value.\n",
1048
+ "\nКомпонент SwitcherField представляет собой переключатель (switch/toggle),\nкоторый позволяет пользователю включать или выключать значение (boolean).\nОбычно используется для управления настройками, параметрами или состояниями\n«вкл / выкл».\n": "\nThe SwitcherField component is a switch/toggle that allows the user to enable or disable a value (boolean).\nIt is typically used to control settings, parameters, or 'on/off' states.\n",
1049
+ "Логическое значение, указывающее, есть ли еще элементы в списке с бесконечным скроллом": "Boolean value indicating whether there are more items in the infinite scroll list",
1050
+ "Кастомный домен для куки": "Custom cookie domain",
1051
+ "Флаг, который указывает, что высота поля должна быть равна высоте контента": "Flag indicating that the field height should be equal to the content height",
1052
+ "Автоматически устанавливает куку для всех поддоменов текущего домена, но только если параметр domain не указан явно": "Automatically sets the cookie for all subdomains of the current domain, but only if the domain parameter is not explicitly specified",
1053
+ "Позволяет использовать cookie на всех поддоменах (по умолчанию, false)": "Allows cookies to be used on all subdomains (by default, false)",
1054
+ "Задержка в мс": "Delay in ms",
1055
+ "Дополнительное содержание сообщения": "Additional message content",
1056
+ "Задержка применения введённого значения": "Delay in applying the entered value",
1057
+ "Применяется для ssr. Если fetch критический — ssr вернет страницу со статус кодом ошибки.": "",
1058
+ "Дополнительное содержание сообщения.": ""
1053
1059
  }
@@ -3,6 +3,7 @@ import { IComponents } from '../providers/ComponentsProvider';
3
3
  declare global {
4
4
  interface Window {
5
5
  APP_PRELOADED_DATA: any;
6
+ APP_PRELOADED_ERRORS: any;
6
7
  }
7
8
  }
8
9
  export interface IFetchConfig {
@@ -10,6 +11,11 @@ export interface IFetchConfig {
10
11
  url?: string;
11
12
  method?: 'get' | 'post' | string;
12
13
  params?: Record<string, unknown>;
14
+ /**
15
+ * Применяется для ssr. Если fetch критический — ssr вернет страницу со статус кодом ошибки.
16
+ * @default false
17
+ */
18
+ isCritical?: boolean;
13
19
  onFetch?: (config: IFetchConfig, components: IComponents, addCancelToken: (token: any) => any) => any;
14
20
  }
15
21
  export interface IFetchResult<T> {
package/hooks/useFetch.js CHANGED
@@ -105,11 +105,13 @@ function useFetch(rawConfig) {
105
105
  var configId = (0, exports.getConfigId)(config);
106
106
  var ssrValueContext = (0, index_1.useSsr)();
107
107
  var preloadedData = process.env.IS_SSR ? ssrValueContext.preloadedData : window.APP_PRELOADED_DATA;
108
+ var preloadedErrors = process.env.IS_SSR ? ssrValueContext.preloadedErrors : window.APP_PRELOADED_ERRORS;
108
109
  var preloadedDataByConfigId = (preloadedData && configId) ? preloadedData[configId] : null;
110
+ var preloadedErrorByConfigId = (preloadedErrors && configId) ? preloadedErrors[configId] : null;
109
111
  // State for data and loading flag
110
112
  var _b = (0, react_1.useState)(preloadedDataByConfigId || null), data = _b[0], setData = _b[1];
111
- var _c = (0, react_1.useState)(null), axiosError = _c[0], setAxiosError = _c[1];
112
- var _d = (0, react_1.useState)(!!config && !data), isLoading = _d[0], setIsLoading = _d[1];
113
+ var _c = (0, react_1.useState)(preloadedErrorByConfigId || null), axiosError = _c[0], setAxiosError = _c[1];
114
+ var _d = (0, react_1.useState)(!!config && !data && !axiosError), isLoading = _d[0], setIsLoading = _d[1];
113
115
  // Cancel tokens
114
116
  var cancelTokens = (0, react_1.useRef)([]);
115
117
  var addCancelToken = function (token) { return cancelTokens.current.push(token); };
@@ -152,7 +154,7 @@ function useFetch(rawConfig) {
152
154
  });
153
155
  }, [components, config]);
154
156
  (0, react_use_1.useEffectOnce)(function () {
155
- if (!data) {
157
+ if (!data && !axiosError) {
156
158
  fetch();
157
159
  }
158
160
  });
package/hooks/useList.js CHANGED
@@ -280,7 +280,7 @@ function useList(config) {
280
280
  dispatch([
281
281
  (0, list_2.listSetItems)(config.listId, config.items),
282
282
  ]);
283
- }, [dispatch, config.items, config.listId, list === null || list === void 0 ? void 0 : list.isFetched]);
283
+ }, [dispatch, config.items, config.listId]);
284
284
  // Check change action
285
285
  var prevAction = (0, react_use_1.usePrevious)(config.action);
286
286
  (0, react_use_1.useUpdateEffect)(function () {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steroidsjs/core",
3
- "version": "3.0.92",
3
+ "version": "3.0.93",
4
4
  "description": "",
5
5
  "author": "Vladimir Kozhin <hello@kozhindev.com>",
6
6
  "repository": {
@@ -4,12 +4,16 @@ import { StaticRouterContext } from 'react-router';
4
4
  export interface IPreloadedData {
5
5
  [configId: string]: any;
6
6
  }
7
+ export interface IPreloadedErrors {
8
+ [configId: string]: any;
9
+ }
7
10
  export interface ISsr {
8
11
  history?: {
9
12
  initialEntries: string[];
10
13
  };
11
14
  staticContext?: StaticRouterContext;
12
15
  preloadedData?: IPreloadedData;
16
+ preloadedErrors?: IPreloadedErrors;
13
17
  }
14
18
  export declare const SsrProviderContext: React.Context<ISsr>;
15
19
  export interface ISsrProviderProps extends ISsr, PropsWithChildren<any> {
@@ -30,7 +30,8 @@ function SsrProvider(props) {
30
30
  return (React.createElement(exports.SsrProviderContext.Provider, { value: {
31
31
  history: props.history,
32
32
  staticContext: props.staticContext,
33
- preloadedData: props.preloadedData
33
+ preloadedData: props.preloadedData,
34
+ preloadedErrors: props.preloadedErrors
34
35
  } }, props.children));
35
36
  }
36
37
  exports["default"] = SsrProvider;
package/reducers/list.js CHANGED
@@ -41,7 +41,7 @@ var reducerMap = (_a = {},
41
41
  },
42
42
  _a[list_1.LIST_SET_ITEMS] = function (state, action) {
43
43
  var _a;
44
- return (__assign(__assign({}, state), { lists: __assign(__assign({}, state.lists), (_a = {}, _a[action.listId] = __assign(__assign({}, state.lists[action.listId]), { items: action.items }), _a)) }));
44
+ return (__assign(__assign({}, state), { lists: __assign(__assign({}, state.lists), (_a = {}, _a[action.listId] = __assign(__assign({}, state.lists[action.listId]), { items: action.items, sourceItems: action.items }), _a)) }));
45
45
  },
46
46
  _a[list_1.LIST_BEFORE_FETCH] = function (state, action) {
47
47
  var _a;
@@ -5,4 +5,7 @@ import { ICheckboxFieldProps } from '../CheckboxField/CheckboxField';
5
5
  *
6
6
  * Компонент RadioField представляет собой элемент выбора типа "radio". Он позволяет пользователю выбрать один вариант из нескольких предложенных.
7
7
  **/
8
- export default function RadioField(props: ICheckboxFieldProps): JSX.Element;
8
+ export interface IRadioFieldProps extends ICheckboxFieldProps {
9
+ }
10
+ declare function RadioField(props: IRadioFieldProps): JSX.Element;
11
+ export default RadioField;
@@ -16,11 +16,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
16
16
  exports.__esModule = true;
17
17
  var react_1 = __importDefault(require("react"));
18
18
  var CheckboxField_1 = __importDefault(require("../CheckboxField/CheckboxField"));
19
- /**
20
- * RadioField
21
- *
22
- * Компонент RadioField представляет собой элемент выбора типа "radio". Он позволяет пользователю выбрать один вариант из нескольких предложенных.
23
- **/
24
19
  function RadioField(props) {
25
20
  return (react_1["default"].createElement(CheckboxField_1["default"], __assign({ multiply: false, view: "form.RadioFieldView" }, props)));
26
21
  }
@@ -2,6 +2,10 @@
2
2
  import { ICheckboxListFieldProps } from '../CheckboxListField/CheckboxListField';
3
3
  /**
4
4
  * RadioListField
5
+ *
5
6
  * Список с радиокнопками. Используется в формах для выбора одного значения.
6
7
  */
7
- export default function RadioListField(props: ICheckboxListFieldProps): JSX.Element;
8
+ export interface IRadioListFieldProps extends ICheckboxListFieldProps {
9
+ }
10
+ declare function RadioListField(props: IRadioListFieldProps): JSX.Element;
11
+ export default RadioListField;
@@ -16,10 +16,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
16
16
  exports.__esModule = true;
17
17
  var react_1 = __importDefault(require("react"));
18
18
  var CheckboxListField_1 = __importDefault(require("../CheckboxListField/CheckboxListField"));
19
- /**
20
- * RadioListField
21
- * Список с радиокнопками. Используется в формах для выбора одного значения.
22
- */
23
19
  function RadioListField(props) {
24
20
  return (react_1["default"].createElement(CheckboxListField_1["default"], __assign({ multiple: false, view: 'form.RadioListFieldView' }, props)));
25
21
  }
@@ -1,3 +1,13 @@
1
1
  /// <reference types="react" />
2
2
  import { ICheckboxFieldProps } from '../CheckboxField/CheckboxField';
3
- export default function SwitcherField(props: ICheckboxFieldProps): JSX.Element;
3
+ /**
4
+ * SwitcherField
5
+ *
6
+ * Компонент SwitcherField представляет собой переключатель (switch/toggle),
7
+ * который позволяет пользователю включать или выключать значение (boolean).
8
+ * Обычно используется для управления настройками, параметрами или состояниями
9
+ * «вкл / выкл».
10
+ **/
11
+ export interface ISwitcherFieldProps extends ICheckboxFieldProps {
12
+ }
13
+ export default function SwitcherField(props: ISwitcherFieldProps): JSX.Element;