@steroidsjs/core 3.0.0-beta.28 → 3.0.0-beta.30

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.
Files changed (44) hide show
  1. package/hooks/useFile.d.ts +23 -2
  2. package/hooks/useList.js +4 -1
  3. package/index.d.ts +24 -0
  4. package/package.json +1 -1
  5. package/reducers/router.d.ts +0 -1
  6. package/ui/content/CopyToClipboard/CopyToClipboard.d.ts +1 -3
  7. package/ui/crud/Crud/Crud.d.ts +1 -3
  8. package/ui/crud/index.d.ts +0 -1
  9. package/ui/form/AutoCompleteField/AutoCompleteField.d.ts +2 -3
  10. package/ui/form/AutoCompleteField/AutoCompleteField.js +0 -1
  11. package/ui/form/CheckboxListField/CheckboxListField.d.ts +2 -2
  12. package/ui/form/CheckboxListField/CheckboxListField.js +1 -1
  13. package/ui/form/FileField/FileField.d.ts +2 -2
  14. package/ui/form/ImageField/ImageField.d.ts +2 -2
  15. package/ui/form/InputField/InputField.d.ts +19 -40
  16. package/ui/form/InputField/InputField.js +1 -9
  17. package/ui/form/NumberField/NumberField.d.ts +3 -4
  18. package/ui/form/NumberField/NumberField.js +0 -6
  19. package/ui/form/PasswordField/PasswordField.d.ts +4 -7
  20. package/ui/form/PasswordField/PasswordField.js +1 -28
  21. package/ui/form/RadioListField/RadioListField.d.ts +3 -1
  22. package/ui/form/TextField/TextField.d.ts +5 -29
  23. package/ui/form/TextField/TextField.js +2 -29
  24. package/ui/nav/Controls/Controls.js +5 -5
  25. package/ui/nav/Router/Router.d.ts +0 -8
  26. package/ui/nav/Router/Router.js +0 -4
  27. package/hoc/application.d.ts +0 -8
  28. package/hoc/application.js +0 -50
  29. package/hoc/bem.d.ts +0 -14
  30. package/hoc/bem.js +0 -42
  31. package/hoc/components.d.ts +0 -11
  32. package/hoc/components.js +0 -62
  33. package/hoc/connect.d.ts +0 -6
  34. package/hoc/connect.js +0 -3
  35. package/hoc/fetch.d.ts +0 -13
  36. package/hoc/fetch.js +0 -60
  37. package/hoc/file.d.ts +0 -28
  38. package/hoc/file.js +0 -45
  39. package/hoc/http.d.ts +0 -7
  40. package/hoc/http.js +0 -53
  41. package/hoc/index.d.ts +0 -8
  42. package/hoc/index.js +0 -20
  43. package/hoc/layout.d.ts +0 -30
  44. package/hoc/layout.js +0 -48
@@ -1,2 +1,23 @@
1
- import { IFileHocInput, IFileHocOutput } from '../hoc/file';
2
- export default function useFile(props: IFileHocInput): IFileHocOutput;
1
+ export interface IFileInput {
2
+ input?: FormInputType;
3
+ multiple?: boolean;
4
+ uploader?: any;
5
+ backendUrl?: any;
6
+ mimeTypes?: any;
7
+ imagesOnly?: any;
8
+ imagesProcessor?: any;
9
+ imagesExactSize?: any;
10
+ initialFiles?: any;
11
+ uploaderConfig?: {
12
+ useFormData?: boolean;
13
+ fileFieldName?: string;
14
+ } | any;
15
+ }
16
+ export interface IFileOutput {
17
+ uploader?: any;
18
+ files?: any[];
19
+ onBrowse?: any;
20
+ onRemove?: any;
21
+ onAdd?: any;
22
+ }
23
+ export default function useFile(props: IFileInput): IFileOutput;
package/hooks/useList.js CHANGED
@@ -256,7 +256,10 @@ function useList(config) {
256
256
  (0, react_use_1.useUnmount)(function () {
257
257
  var autoDestroy = typeof config.autoDestroy === 'boolean' ? config.autoDestroy : exports.defaultConfig.autoDestroy;
258
258
  if (autoDestroy) {
259
- dispatch((0, list_2.listDestroy)(config.listId));
259
+ dispatch([
260
+ (0, list_2.listDestroy)(config.listId),
261
+ (0, form_1.formDestroy)(config.listId),
262
+ ]);
260
263
  }
261
264
  });
262
265
  var onFetch = (0, react_1.useCallback)(function (params) {
package/index.d.ts CHANGED
@@ -47,6 +47,11 @@ declare type PrimaryKey = number | string;
47
47
  */
48
48
  declare type Size = 'small' | 'middle' | 'large' | string;
49
49
 
50
+ /**
51
+ * Ориентация элемента
52
+ */
53
+ declare type Orientation = 'horizontal' | 'vertical' | string;
54
+
50
55
  /**
51
56
  * Объект из свойства `input` от redux-form
52
57
  */
@@ -84,3 +89,22 @@ declare type CustomIcon = string | React.ReactElement;
84
89
  * HTTP метод
85
90
  */
86
91
  declare type HttpMethod = 'get' | 'post' | 'put' | 'delete' | string;
92
+
93
+ declare interface IUiComponent {
94
+ /**
95
+ * Переопределение view React компонента для кастомизации отображения
96
+ * @example MyCustomView
97
+ */
98
+ view?: CustomView;
99
+
100
+ /**
101
+ * Дополнительный CSS-класс для элемента отображения
102
+ */
103
+ className?: CssClassName;
104
+
105
+ /**
106
+ * Объект CSS стилей
107
+ * @example {width: '45%'}
108
+ */
109
+ style?: CustomStyle;
110
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steroidsjs/core",
3
- "version": "3.0.0-beta.28",
3
+ "version": "3.0.0-beta.30",
4
4
  "description": "",
5
5
  "author": "Vladimir Kozhin <hello@kozhindev.com>",
6
6
  "repository": {
@@ -58,7 +58,6 @@ export declare const normalizeRoutes: (state: any, item: IRouteItem, activeIds:
58
58
  models?: string | string[];
59
59
  enums?: string | string[];
60
60
  role?: string;
61
- fetch?: import("../hoc/fetch").IFetchHocConfigFunc;
62
61
  preloadData?: (match: Record<string, any>) => (import("../hooks/useFetch").IFetchConfig | import("../ui/list/List/List").IListProps)[];
63
62
  };
64
63
  /**
@@ -1,6 +1,4 @@
1
- import { IBemHocOutput } from '../../../hoc/bem';
2
- import { IConnectHocOutput } from '../../../hoc/connect';
3
- interface ICopyToClipboardProps extends IBemHocOutput, IConnectHocOutput {
1
+ interface ICopyToClipboardProps {
4
2
  value: string;
5
3
  disabled?: boolean;
6
4
  notification?: string | {
@@ -2,8 +2,6 @@ import * as React from 'react';
2
2
  import { ReactNode } from 'react';
3
3
  import { IApiRest } from '../../../components/ApiComponent';
4
4
  import { IComponents } from '../../../providers/ComponentsProvider';
5
- import { IComponentsHocOutput } from '../../../hoc/components';
6
- import { IConnectHocOutput } from '../../../hoc/connect';
7
5
  import { IFormProps } from '../../form/Form/Form';
8
6
  import { IGridProps } from '../../list/Grid/Grid';
9
7
  import { IControlItem } from '../../nav/Controls/Controls';
@@ -60,7 +58,7 @@ export interface ICrudProps {
60
58
  errorHandler?: (error: any, dispatch: any) => void;
61
59
  [key: string]: any;
62
60
  }
63
- export interface ICrudChildrenProps extends ICrudProps, IConnectHocOutput, IComponentsHocOutput {
61
+ export interface ICrudChildrenProps extends ICrudProps {
64
62
  item?: any;
65
63
  recordId?: PrimaryKey;
66
64
  action?: string;
@@ -28,7 +28,6 @@ export declare const generateCrud: (routeId: string, props: ICrudGeneratorProps)
28
28
  enums: string | string[];
29
29
  role?: string;
30
30
  roles?: string[];
31
- fetch?: import("../../hoc/fetch").IFetchHocConfigFunc;
32
31
  items?: IRouteItem[] | {
33
32
  [key: string]: IRouteItem;
34
33
  };
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { IDataProviderConfig } from '../../../hooks/useDataProvider';
3
3
  import { IDataSelectConfig } from '../../../hooks/useDataSelect';
4
- import { IInputFieldProps } from '../InputField/InputField';
4
+ import { IBaseFieldProps } from '../InputField/InputField';
5
5
  export interface IAutoCompleteItem {
6
6
  id: number | string | boolean;
7
7
  label?: string;
@@ -16,13 +16,12 @@ export interface IAutoCompleteItem {
16
16
  * AutoComplete
17
17
  * Поле ввода текста с подсказками (auto-complete)
18
18
  */
19
- export interface IAutoCompleteFieldProps extends IInputFieldProps, IDataProviderConfig, Omit<IDataSelectConfig, 'items'> {
19
+ export interface IAutoCompleteFieldProps extends IBaseFieldProps, IDataProviderConfig, Omit<IDataSelectConfig, 'items'> {
20
20
  /**
21
21
  * При фокусировке на поле ввода будет запускаться поиск
22
22
  * @example true
23
23
  */
24
24
  searchOnFocus?: boolean;
25
- [key: string]: any;
26
25
  }
27
26
  export interface IAutoCompleteFieldViewProps extends Omit<IAutoCompleteFieldProps, 'items'> {
28
27
  items: IAutoCompleteItem[];
@@ -100,7 +100,6 @@ AutoCompleteField.defaultProps = {
100
100
  multiple: false,
101
101
  disabled: false,
102
102
  required: false,
103
- className: '',
104
103
  size: 'md'
105
104
  };
106
105
  exports["default"] = (0, fieldWrapper_1["default"])('AutoCompleteField', AutoCompleteField);
@@ -25,7 +25,7 @@ export interface ICheckboxListFieldProps extends IFieldWrapperInputProps, IDataP
25
25
  /**
26
26
  * Ориентация списка
27
27
  */
28
- orientation?: 'horizontal' | 'vertical';
28
+ orientation?: Orientation;
29
29
  [key: string]: any;
30
30
  }
31
31
  export interface ICheckboxListFieldViewProps extends IFieldWrapperOutputProps {
@@ -43,7 +43,7 @@ export interface ICheckboxListFieldViewProps extends IFieldWrapperOutputProps {
43
43
  }[];
44
44
  selectedIds: (PrimaryKey | any)[];
45
45
  onItemSelect: (id: PrimaryKey | any) => void;
46
- orientation?: 'horizontal' | 'vertical';
46
+ orientation?: Orientation;
47
47
  renderCheckbox: (checkboxProps: ICheckboxFieldViewProps) => JSX.Element;
48
48
  }
49
49
  declare const _default: import("../../../ui/form/Field/fieldWrapper").FieldWrapperComponent<ICheckboxListFieldProps>;
@@ -84,7 +84,7 @@ CheckboxListField.defaultProps = {
84
84
  disabled: false,
85
85
  required: false,
86
86
  className: '',
87
- multiple: false,
87
+ multiple: true,
88
88
  orientation: 'vertical'
89
89
  };
90
90
  exports["default"] = (0, fieldWrapper_1["default"])('CheckboxListField', CheckboxListField);
@@ -1,11 +1,11 @@
1
- import { IFileHocInput, IFileHocOutput } from '../../../hoc/file';
1
+ import { IFileInput } from '../../../hooks/useFile';
2
2
  import { IFieldWrapperInputProps } from '../Field/fieldWrapper';
3
3
  import { IButtonProps } from '../Button/Button';
4
4
  export declare enum FilesLayout {
5
5
  list = "list",
6
6
  wall = "wall"
7
7
  }
8
- interface IFileFieldCommonProps extends IFileHocInput, IFileHocOutput {
8
+ interface IFileFieldCommonProps extends IFileInput {
9
9
  /**
10
10
  * Показать значок удаление файла
11
11
  * @example true
@@ -1,7 +1,7 @@
1
1
  import ReactCropProps, { Crop } from 'react-image-crop';
2
2
  import { IModalProps } from '../../modal/Modal/Modal';
3
+ import { IFileInput } from '../../../hooks/useFile';
3
4
  import { IFieldWrapperInputProps } from '../Field/fieldWrapper';
4
- import { IFileHocInput, IFileHocOutput } from '../../../hoc/file';
5
5
  export interface ICropInputProps {
6
6
  /**
7
7
  * Изначальные параметры обрезки изображения
@@ -19,7 +19,7 @@ export interface ICropInputProps {
19
19
  */
20
20
  reactImageCropProps?: ReactCropProps;
21
21
  }
22
- export interface IImageFieldProps extends IFieldWrapperInputProps, Omit<IFileHocInput, 'multiple' | 'imagesOnly'>, IFileHocOutput {
22
+ export interface IImageFieldProps extends IFieldWrapperInputProps, Omit<IFileInput, 'multiple' | 'imagesOnly'> {
23
23
  /**
24
24
  * Дополнительный CSS-класс для компонента
25
25
  */
@@ -2,48 +2,35 @@ import * as React from 'react';
2
2
  import { ChangeEventHandler, ReactNode } from 'react';
3
3
  import { IFieldWrapperInputProps, IFieldWrapperOutputProps } from '../Field/fieldWrapper';
4
4
  type IElementInputType = 'button' | 'checkbox' | 'color' | 'date' | 'datetime-local' | 'email' | 'file' | 'hidden' | 'image' | 'month' | 'number' | 'password' | 'radio' | 'range' | 'reset' | 'search' | 'submit' | 'tel' | 'text' | 'time' | 'url' | 'week' | string;
5
- /**
6
- * InputField
7
- * Поле ввода текста
8
- */
9
- export interface IInputFieldProps extends IFieldWrapperInputProps {
10
- /**
11
- * HTML Тип
12
- * @example email
13
- */
14
- type?: IElementInputType;
15
- /**
16
- * Placeholder подсказка
17
- * @example Your text...
18
- */
19
- placeholder?: string;
5
+ export interface IBaseFieldProps extends IFieldWrapperInputProps, IUiComponent {
20
6
  /**
21
7
  * Свойства для элемента \<input /\>
22
8
  * @example {onKeyDown: ...}
23
9
  */
24
10
  inputProps?: any;
25
11
  /**
26
- * Дополнительный CSS-класс для элемента отображения
27
- */
28
- className?: CssClassName;
29
- /**
30
- * Переопределение view React компонента для кастомизации отображения
31
- * @example MyCustomView
32
- */
33
- view?: CustomView;
34
- /**
35
- */
36
- viewProps?: any;
12
+ * Показывать иконку очищения поля
13
+ * @example {'true'}
14
+ */
15
+ showClear?: boolean;
37
16
  /**
38
- * Размер Input
39
- * @example 'large'
17
+ * Свойства для компонента отображения
18
+ * @example {customHandler: () => {...}}
40
19
  */
41
- size?: Size;
20
+ viewProps?: {
21
+ [key: string]: any;
22
+ };
23
+ }
24
+ /**
25
+ * InputField
26
+ * Поле ввода текста
27
+ */
28
+ export interface IInputFieldProps extends IBaseFieldProps {
42
29
  /**
43
- * Объект CSS стилей
44
- * @example {width: '45%'}
30
+ * HTML Тип
31
+ * @example email
45
32
  */
46
- style?: CustomStyle;
33
+ type?: IElementInputType;
47
34
  /**
48
35
  * Изображение или React-нода, которая будет отрендерена слева от поля.
49
36
  * @example require('icon.png') | <component/>
@@ -73,18 +60,10 @@ export interface IInputFieldProps extends IFieldWrapperInputProps {
73
60
  maskPlaceholder?: string;
74
61
  alwaysShowMask?: boolean;
75
62
  };
76
- /**
77
- * Показывать иконку очищения поля
78
- * @example {'true'}
79
- */
80
- showClear?: boolean;
81
63
  /**
82
64
  * Пользовательская иконка svg или название иконки
83
65
  */
84
66
  leadIcon?: React.ReactElement | string;
85
- success?: boolean;
86
- failed?: boolean;
87
- [key: string]: any;
88
67
  }
89
68
  export interface IInputFieldViewProps extends IInputFieldProps, IFieldWrapperOutputProps {
90
69
  inputProps: {
@@ -66,14 +66,6 @@ InputField.defaultProps = {
66
66
  size: 'md',
67
67
  disabled: false,
68
68
  required: false,
69
- className: '',
70
- placeholder: '',
71
- errors: null,
72
- showClear: false,
73
- successful: false,
74
- textBefore: null,
75
- textAfter: null,
76
- addonBefore: null,
77
- addonAfter: null
69
+ showClear: false
78
70
  };
79
71
  exports["default"] = (0, fieldWrapper_1["default"])('InputField', InputField);
@@ -1,10 +1,10 @@
1
- import { IInputFieldProps } from '../InputField/InputField';
2
- import { IFieldWrapperInputProps, IFieldWrapperOutputProps } from '../Field/fieldWrapper';
1
+ import { IBaseFieldProps } from '../InputField/InputField';
2
+ import { IFieldWrapperOutputProps } from '../Field/fieldWrapper';
3
3
  /**
4
4
  * NumberField
5
5
  * Числовое поле ввода
6
6
  */
7
- export interface INumberFieldProps extends IInputFieldProps, IFieldWrapperInputProps {
7
+ export interface INumberFieldProps extends IBaseFieldProps {
8
8
  /**
9
9
  * Минимальное значение
10
10
  * @example 1
@@ -20,7 +20,6 @@ export interface INumberFieldProps extends IInputFieldProps, IFieldWrapperInputP
20
20
  * @example 5
21
21
  */
22
22
  step?: string | number;
23
- [key: string]: any;
24
23
  }
25
24
  export interface INumberFieldViewProps extends INumberFieldProps, IFieldWrapperOutputProps {
26
25
  inputProps: {
@@ -28,12 +28,6 @@ function NumberField(props) {
28
28
  NumberField.defaultProps = {
29
29
  disabled: false,
30
30
  required: false,
31
- className: '',
32
- placeholder: '',
33
- min: null,
34
- max: null,
35
- step: null,
36
- errors: null,
37
31
  size: 'md'
38
32
  };
39
33
  exports["default"] = (0, fieldWrapper_1["default"])('NumberField', NumberField);
@@ -1,11 +1,11 @@
1
- import * as React from 'react';
2
- import { IInputFieldProps } from '../InputField/InputField';
1
+ import { ChangeEvent } from 'react';
2
+ import { IBaseFieldProps } from '../InputField/InputField';
3
3
  import { IFieldWrapperOutputProps } from '../Field/fieldWrapper';
4
4
  /**
5
5
  * PasswordField
6
6
  * Поле ввода пароля
7
7
  */
8
- export interface IPasswordFieldProps extends IInputFieldProps {
8
+ export interface IPasswordFieldProps extends IBaseFieldProps {
9
9
  /**
10
10
  * Если true, то отображается шкала сложности пароля
11
11
  * @example true
@@ -15,19 +15,16 @@ export interface IPasswordFieldProps extends IInputFieldProps {
15
15
  * Если true, то отображается иконка скрытия/показа пароля
16
16
  */
17
17
  showSecurityIcon?: boolean;
18
- [key: string]: any;
19
18
  }
20
19
  export interface IPasswordFieldViewProps extends IPasswordFieldProps, IFieldWrapperOutputProps {
21
20
  inputProps: {
22
21
  type: string;
23
22
  name: string;
24
- onChange: (value: Event | React.ChangeEvent) => void;
23
+ onChange: (value: Event | ChangeEvent) => void;
25
24
  value: string | number;
26
25
  placeholder: string;
27
26
  disabled: boolean;
28
27
  };
29
- errors?: string[];
30
- className?: CssClassName;
31
28
  onClear?: () => void;
32
29
  securityLevel?: 'success' | 'warning' | 'danger';
33
30
  onShowPassword: () => void;
@@ -10,35 +10,11 @@ var __assign = (this && this.__assign) || function () {
10
10
  };
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- var desc = Object.getOwnPropertyDescriptor(m, k);
16
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
- desc = { enumerable: true, get: function() { return m[k]; } };
18
- }
19
- Object.defineProperty(o, k2, desc);
20
- }) : (function(o, m, k, k2) {
21
- if (k2 === undefined) k2 = k;
22
- o[k2] = m[k];
23
- }));
24
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
- Object.defineProperty(o, "default", { enumerable: true, value: v });
26
- }) : function(o, v) {
27
- o["default"] = v;
28
- });
29
- var __importStar = (this && this.__importStar) || function (mod) {
30
- if (mod && mod.__esModule) return mod;
31
- var result = {};
32
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
- __setModuleDefault(result, mod);
34
- return result;
35
- };
36
13
  var __importDefault = (this && this.__importDefault) || function (mod) {
37
14
  return (mod && mod.__esModule) ? mod : { "default": mod };
38
15
  };
39
16
  exports.__esModule = true;
40
17
  exports.checkPassword = void 0;
41
- var React = __importStar(require("react"));
42
18
  var react_1 = require("react");
43
19
  var hooks_1 = require("../../../hooks");
44
20
  var fieldWrapper_1 = __importDefault(require("../Field/fieldWrapper"));
@@ -73,7 +49,7 @@ exports.checkPassword = checkPassword;
73
49
  function PasswordField(props) {
74
50
  var _a = (0, react_1.useState)('password'), type = _a[0], setType = _a[1];
75
51
  var components = (0, hooks_1.useComponents)();
76
- var onClear = React.useCallback(function () { return props.input.onChange(''); }, [props.input]);
52
+ var onClear = (0, react_1.useCallback)(function () { return props.input.onChange(''); }, [props.input]);
77
53
  props.inputProps = (0, react_1.useMemo)(function () { return (__assign({ name: props.input.name, value: props.input.value || '', onChange: function (e) { return props.input.onChange(e.target ? e.target.value : e.nativeEvent.text); }, type: type, placeholder: props.placeholder, disabled: props.disabled }, props.inputProps)); }, [props.disabled, props.input, props.inputProps, props.placeholder, type]);
78
54
  props.securityLevel = props.showSecurityBar ? (0, exports.checkPassword)(props.input.value) : null;
79
55
  props.onShowPassword = function () { return setType('text'); };
@@ -86,9 +62,6 @@ PasswordField.defaultProps = {
86
62
  showSecurityBar: false,
87
63
  showSecurityIcon: true,
88
64
  required: false,
89
- className: '',
90
- placeholder: '',
91
- errors: null,
92
65
  size: 'md'
93
66
  };
94
67
  exports["default"] = (0, fieldWrapper_1["default"])('PasswordField', PasswordField);
@@ -20,7 +20,7 @@ export interface IRadioListFieldProps extends IFieldWrapperInputProps, IDataProv
20
20
  /**
21
21
  * Ориентация списка
22
22
  */
23
- orientation?: 'horizontal' | 'vertical';
23
+ orientation?: Orientation;
24
24
  /**
25
25
  * Переопределение view React компонента для кастомизации отображения
26
26
  * @example MyCustomView
@@ -43,6 +43,8 @@ export interface IRadioListFieldViewProps extends IFieldWrapperOutputProps {
43
43
  }[];
44
44
  selectedIds: (PrimaryKey | any)[];
45
45
  className?: CssClassName;
46
+ orientation?: Orientation;
47
+ size?: Size;
46
48
  onItemSelect: (id: PrimaryKey | any) => void;
47
49
  renderRadio: (radioProps: IRadioFieldViewProps) => JSX.Element;
48
50
  }
@@ -1,45 +1,21 @@
1
- import * as React from 'react';
2
- import { KeyboardEventHandler } from 'react';
3
- import { IFieldWrapperInputProps, IFieldWrapperOutputProps } from '../Field/fieldWrapper';
1
+ import { ChangeEvent, KeyboardEventHandler } from 'react';
2
+ import { IFieldWrapperOutputProps } from '../Field/fieldWrapper';
3
+ import { IBaseFieldProps } from '../InputField/InputField';
4
4
  /**
5
5
  * TextField
6
6
  * Поле для ввода нескольких строк теста
7
7
  */
8
- export interface ITextFieldProps extends IFieldWrapperInputProps {
9
- /**
10
- * Placeholder подсказка
11
- * @example Your text...
12
- */
13
- placeholder?: string;
8
+ export interface ITextFieldProps extends IBaseFieldProps {
14
9
  /**
15
10
  * Отправлять форму при нажатии на кнопку `enter`
16
11
  * @example true
17
12
  */
18
13
  submitOnEnter?: boolean;
19
- /**
20
- * Свойства для элемента \<input /\>
21
- * @example {onKeyDown: ...}
22
- */
23
- inputProps?: any;
24
- /**
25
- * Дополнительный CSS-класс для тега \<textarea\>
26
- */
27
- className?: CssClassName;
28
- /**
29
- * Переопределение view React компонента для кастомизации отображения
30
- * @example MyCustomView
31
- */
32
- view?: CustomView;
33
- /**
34
- * Отображение кнопки очищения поля
35
- */
36
- showClear?: boolean;
37
- [key: string]: any;
38
14
  }
39
15
  export interface ITextFieldViewProps extends ITextFieldProps, IFieldWrapperOutputProps {
40
16
  inputProps: {
41
17
  name: string;
42
- onChange: (value: string | React.ChangeEvent) => void;
18
+ onChange: (value: string | ChangeEvent) => void;
43
19
  onKeyUp: KeyboardEventHandler<HTMLTextAreaElement>;
44
20
  value: string | number;
45
21
  placeholder: string;
@@ -10,34 +10,10 @@ var __assign = (this && this.__assign) || function () {
10
10
  };
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- var desc = Object.getOwnPropertyDescriptor(m, k);
16
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
- desc = { enumerable: true, get: function() { return m[k]; } };
18
- }
19
- Object.defineProperty(o, k2, desc);
20
- }) : (function(o, m, k, k2) {
21
- if (k2 === undefined) k2 = k;
22
- o[k2] = m[k];
23
- }));
24
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
- Object.defineProperty(o, "default", { enumerable: true, value: v });
26
- }) : function(o, v) {
27
- o["default"] = v;
28
- });
29
- var __importStar = (this && this.__importStar) || function (mod) {
30
- if (mod && mod.__esModule) return mod;
31
- var result = {};
32
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
- __setModuleDefault(result, mod);
34
- return result;
35
- };
36
13
  var __importDefault = (this && this.__importDefault) || function (mod) {
37
14
  return (mod && mod.__esModule) ? mod : { "default": mod };
38
15
  };
39
16
  exports.__esModule = true;
40
- var React = __importStar(require("react"));
41
17
  var react_1 = require("react");
42
18
  var hooks_1 = require("../../../hooks");
43
19
  var fieldWrapper_1 = __importDefault(require("../Field/fieldWrapper"));
@@ -55,16 +31,13 @@ function TextField(props) {
55
31
  }
56
32
  }, [props.formId, props.submitOnEnter]);
57
33
  var onChange = (0, react_1.useCallback)(function (e) { return props.input.onChange.call(null, e.target ? e.target.value : e.nativeEvent.text); }, [props.input.onChange]);
58
- var onClear = React.useCallback(function () { return props.input.onChange(''); }, [props.input]);
34
+ var onClear = (0, react_1.useCallback)(function () { return props.input.onChange(''); }, [props.input]);
59
35
  var inputProps = (0, react_1.useMemo)(function () { return (__assign({ name: props.input.name, value: props.input.value || '', onChange: onChange, onKeyUp: onKeyUp, placeholder: props.placeholder, disabled: props.disabled }, props.inputProps)); }, [onKeyUp, onChange, props.disabled, props.input.name, props.input.value, props.inputProps, props.placeholder]);
60
36
  return components.ui.renderView(props.view || 'form.TextFieldView', __assign(__assign({}, props), { inputProps: inputProps, onClear: onClear }));
61
37
  }
62
38
  TextField.defaultProps = {
63
39
  disabled: false,
64
40
  required: false,
65
- className: '',
66
- placeholder: '',
67
- submitOnEnter: false,
68
- errors: null
41
+ submitOnEnter: false
69
42
  };
70
43
  exports["default"] = (0, fieldWrapper_1["default"])('TextField', TextField);
@@ -17,31 +17,31 @@ var hooks_1 = require("../../../hooks");
17
17
  function Controls(props) {
18
18
  var defaultItems = {
19
19
  index: {
20
- icon: 'comeback',
20
+ icon: 'left_12x12',
21
21
  label: __('К списку'),
22
22
  color: 'secondary',
23
23
  outline: true
24
24
  },
25
25
  create: {
26
- icon: 'add1',
26
+ icon: 'add_square',
27
27
  label: __('Добавить'),
28
28
  color: 'success',
29
29
  outline: true
30
30
  },
31
31
  view: {
32
- icon: 'show',
32
+ icon: 'view',
33
33
  label: __('Просмотр'),
34
34
  color: 'secondary',
35
35
  outline: true
36
36
  },
37
37
  update: {
38
- icon: 'edit1',
38
+ icon: 'edit',
39
39
  label: __('Редактировать'),
40
40
  color: 'secondary',
41
41
  outline: true
42
42
  },
43
43
  "delete": {
44
- icon: 'remove',
44
+ icon: 'cancel_ellips',
45
45
  label: __('Удалить'),
46
46
  confirm: __('Удалить запись?'),
47
47
  color: 'danger',
@@ -1,7 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { IFetchConfig } from '../../../hooks/useFetch';
3
3
  import { IListProps } from '../../list/List/List';
4
- import { IFetchHocConfigFunc } from '../../../hoc/fetch';
5
4
  export declare const ROUTER_ROLE_LOGIN = "login";
6
5
  export declare const ROUTER_ROLE_MODAL = "modal";
7
6
  export declare const ROUTER_ROLE_404 = "404";
@@ -86,13 +85,6 @@ export interface IRouteItem {
86
85
  * @example ['user', 'admin']
87
86
  */
88
87
  roles?: Array<string | null>;
89
- /**
90
- * Обработчик, который возвращает конфигурацию для осуществления HTTP-запроса. Запрос происходит каждый раз
91
- * перед рендерингом страницы, чтобы получить для неё все необходимые данные
92
- * @param {*} props
93
- * @return {Object} Например, {url: '/api/v1/some-data', key: 'someData'}
94
- */
95
- fetch?: IFetchHocConfigFunc;
96
88
  /**
97
89
  * Вложенные роуты
98
90
  */
@@ -51,7 +51,6 @@ var react_use_1 = require("react-use");
51
51
  var modal_1 = require("../../../actions/modal");
52
52
  var modal_2 = require("../../../reducers/modal");
53
53
  var hooks_1 = require("../../../hooks");
54
- var hoc_1 = require("../../../hoc");
55
54
  var router_1 = require("../../../actions/router");
56
55
  var useDispatch_1 = __importDefault(require("../../../hooks/useDispatch"));
57
56
  var router_2 = require("../../../reducers/router");
@@ -139,9 +138,6 @@ var renderComponent = function (route, activePath, routeProps) {
139
138
  return null;
140
139
  }
141
140
  var Component = route.component;
142
- if (route.fetch) {
143
- Component = (0, hoc_1.fetch)(route.fetch)(Component);
144
- }
145
141
  return (React.createElement(Component, __assign({}, routeProps, route.componentProps)));
146
142
  };
147
143
  function Router(props) {
@@ -1,8 +0,0 @@
1
- import { IApplicationHookConfig } from '../hooks/useApplication';
2
- /**
3
- * Application HOC
4
- * Обертка над корневым компонентом приложения, используется только в `Application.tsx`. Добавляет через React Context
5
- * компоненты приложения и конфигурирует их.
6
- */
7
- declare const _default: (config: IApplicationHookConfig) => any;
8
- export default _default;
@@ -1,50 +0,0 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- var desc = Object.getOwnPropertyDescriptor(m, k);
16
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
- desc = { enumerable: true, get: function() { return m[k]; } };
18
- }
19
- Object.defineProperty(o, k2, desc);
20
- }) : (function(o, m, k, k2) {
21
- if (k2 === undefined) k2 = k;
22
- o[k2] = m[k];
23
- }));
24
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
- Object.defineProperty(o, "default", { enumerable: true, value: v });
26
- }) : function(o, v) {
27
- o["default"] = v;
28
- });
29
- var __importStar = (this && this.__importStar) || function (mod) {
30
- if (mod && mod.__esModule) return mod;
31
- var result = {};
32
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
- __setModuleDefault(result, mod);
34
- return result;
35
- };
36
- var __importDefault = (this && this.__importDefault) || function (mod) {
37
- return (mod && mod.__esModule) ? mod : { "default": mod };
38
- };
39
- exports.__esModule = true;
40
- var React = __importStar(require("react"));
41
- var useApplication_1 = __importDefault(require("../hooks/useApplication"));
42
- /**
43
- * Application HOC
44
- * Обертка над корневым компонентом приложения, используется только в `Application.tsx`. Добавляет через React Context
45
- * компоненты приложения и конфигурирует их.
46
- */
47
- exports["default"] = (function (config) { return function (WrappedComponent) { return function ApplicationHoc(props) {
48
- var renderApplication = (0, useApplication_1["default"])(config).renderApplication;
49
- return renderApplication(React.createElement(WrappedComponent, __assign({}, props)));
50
- }; }; });
package/hoc/bem.d.ts DELETED
@@ -1,14 +0,0 @@
1
- import { IComponentsHocOutput } from './components';
2
- import { IBem } from '../hooks/useBem';
3
- /**
4
- * Bem HOC
5
- * Прокидывает утилиту `bem` для правильной генерации CSS классов по методологии БЭМ (блок, элемент, модификатор)
6
- */
7
- export interface IBemHocInput {
8
- style?: CustomStyle;
9
- }
10
- export interface IBemHocOutput extends IComponentsHocOutput {
11
- bem?: IBem;
12
- }
13
- declare const _default: (namespace: string) => any;
14
- export default _default;
package/hoc/bem.js DELETED
@@ -1,42 +0,0 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- var desc = Object.getOwnPropertyDescriptor(m, k);
16
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
- desc = { enumerable: true, get: function() { return m[k]; } };
18
- }
19
- Object.defineProperty(o, k2, desc);
20
- }) : (function(o, m, k, k2) {
21
- if (k2 === undefined) k2 = k;
22
- o[k2] = m[k];
23
- }));
24
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
- Object.defineProperty(o, "default", { enumerable: true, value: v });
26
- }) : function(o, v) {
27
- o["default"] = v;
28
- });
29
- var __importStar = (this && this.__importStar) || function (mod) {
30
- if (mod && mod.__esModule) return mod;
31
- var result = {};
32
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
- __setModuleDefault(result, mod);
34
- return result;
35
- };
36
- exports.__esModule = true;
37
- var React = __importStar(require("react"));
38
- var hooks_1 = require("../hooks");
39
- exports["default"] = (function (namespace) { return function (WrappedComponent) { return function BemHoc(props) {
40
- var bem = (0, hooks_1.useBem)(namespace);
41
- return (React.createElement(WrappedComponent, __assign({}, props, { bem: bem })));
42
- }; }; });
@@ -1,11 +0,0 @@
1
- import { IComponents } from '../providers/ComponentsProvider';
2
- export interface IComponentsHocOutput extends IComponents {
3
- components?: IComponents;
4
- }
5
- /**
6
- * Components HOC
7
- * Прокидывает в пропсы компоненты приложения. Ключ соответствует названию компонента, объявленного при инициализации
8
- * приложения (см. `Application.tsx`)
9
- */
10
- declare const _default: (...names: any[]) => any;
11
- export default _default;
package/hoc/components.js DELETED
@@ -1,62 +0,0 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- var desc = Object.getOwnPropertyDescriptor(m, k);
16
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
- desc = { enumerable: true, get: function() { return m[k]; } };
18
- }
19
- Object.defineProperty(o, k2, desc);
20
- }) : (function(o, m, k, k2) {
21
- if (k2 === undefined) k2 = k;
22
- o[k2] = m[k];
23
- }));
24
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
- Object.defineProperty(o, "default", { enumerable: true, value: v });
26
- }) : function(o, v) {
27
- o["default"] = v;
28
- });
29
- var __importStar = (this && this.__importStar) || function (mod) {
30
- if (mod && mod.__esModule) return mod;
31
- var result = {};
32
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
- __setModuleDefault(result, mod);
34
- return result;
35
- };
36
- exports.__esModule = true;
37
- var React = __importStar(require("react"));
38
- var hooks_1 = require("../hooks");
39
- var exportComponents = function (components, names) {
40
- var props = {};
41
- names.forEach(function (items) {
42
- [].concat(items).forEach(function (name) {
43
- props[name] = components[name];
44
- });
45
- });
46
- return props;
47
- };
48
- /**
49
- * Components HOC
50
- * Прокидывает в пропсы компоненты приложения. Ключ соответствует названию компонента, объявленного при инициализации
51
- * приложения (см. `Application.tsx`)
52
- */
53
- exports["default"] = (function () {
54
- var names = [];
55
- for (var _i = 0; _i < arguments.length; _i++) {
56
- names[_i] = arguments[_i];
57
- }
58
- return function (WrappedComponent) { return function ComponentsHoc(props) {
59
- var components = (0, hooks_1.useComponents)();
60
- return (React.createElement(WrappedComponent, __assign({}, props, exportComponents(components, names), { components: components })));
61
- }; };
62
- });
package/hoc/connect.d.ts DELETED
@@ -1,6 +0,0 @@
1
- export type Dispatch = (any: any) => any;
2
- export interface IConnectHocOutput {
3
- dispatch?: Dispatch;
4
- }
5
- declare const _default: any;
6
- export default _default;
package/hoc/connect.js DELETED
@@ -1,3 +0,0 @@
1
- "use strict";
2
- exports.__esModule = true;
3
- exports["default"] = require('react-redux').connect;
package/hoc/fetch.d.ts DELETED
@@ -1,13 +0,0 @@
1
- import { IFetchConfig } from '../hooks/useFetch';
2
- export interface IFetchHocOutput {
3
- fetchRefresh?: (ids?: string | string[]) => void;
4
- fetchUpdate?: (props: any) => void;
5
- }
6
- export type IFetchHocConfigFunc = (props: any) => IFetchConfig & {
7
- key: string;
8
- };
9
- interface IFetchHocOptions {
10
- waitLoading?: any;
11
- }
12
- declare const _default: (configFunc: IFetchHocConfigFunc, options?: IFetchHocOptions) => any;
13
- export default _default;
package/hoc/fetch.js DELETED
@@ -1,60 +0,0 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- var desc = Object.getOwnPropertyDescriptor(m, k);
16
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
- desc = { enumerable: true, get: function() { return m[k]; } };
18
- }
19
- Object.defineProperty(o, k2, desc);
20
- }) : (function(o, m, k, k2) {
21
- if (k2 === undefined) k2 = k;
22
- o[k2] = m[k];
23
- }));
24
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
- Object.defineProperty(o, "default", { enumerable: true, value: v });
26
- }) : function(o, v) {
27
- o["default"] = v;
28
- });
29
- var __importStar = (this && this.__importStar) || function (mod) {
30
- if (mod && mod.__esModule) return mod;
31
- var result = {};
32
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
- __setModuleDefault(result, mod);
34
- return result;
35
- };
36
- var __importDefault = (this && this.__importDefault) || function (mod) {
37
- return (mod && mod.__esModule) ? mod : { "default": mod };
38
- };
39
- exports.__esModule = true;
40
- var React = __importStar(require("react"));
41
- var react_redux_1 = require("react-redux");
42
- var react_1 = require("react");
43
- var router_1 = require("../reducers/router");
44
- var useFetch_1 = __importDefault(require("../hooks/useFetch"));
45
- exports["default"] = (function (configFunc, options) {
46
- if (options === void 0) { options = {}; }
47
- return function (WrappedComponent) { return function FetchHoc(props) {
48
- var _a;
49
- var params = (0, react_redux_1.useSelector)(function (state) { return (0, router_1.getRouteParams)(state); });
50
- var config = (0, react_1.useMemo)(function () { return configFunc(__assign(__assign({}, props), { params: params })); }, [params, props]);
51
- var _b = (0, useFetch_1["default"])(config), data = _b.data, isLoading = _b.isLoading, fetch = _b.fetch;
52
- var fetchRefresh = (0, react_1.useCallback)(function () { return fetch(); }, [fetch]);
53
- var fetchUpdate = (0, react_1.useCallback)(function (newParams) { return fetch({ params: newParams }); }, [fetch]);
54
- if (isLoading && options.waitLoading !== false) {
55
- // TODO Loader
56
- return null;
57
- }
58
- return (React.createElement(WrappedComponent, __assign({}, props, { fetchRefresh: fetchRefresh, fetchUpdate: fetchUpdate }, (_a = {}, _a[config.key] = data, _a))));
59
- }; };
60
- });
package/hoc/file.d.ts DELETED
@@ -1,28 +0,0 @@
1
- /**
2
- * File HOC
3
- * Компонент для асинхронной загрузки файлов на сервер, используется в `FileField`
4
- */
5
- export interface IFileHocInput {
6
- input?: FormInputType;
7
- multiple?: boolean;
8
- uploader?: any;
9
- backendUrl?: any;
10
- mimeTypes?: any;
11
- imagesOnly?: any;
12
- imagesProcessor?: any;
13
- imagesExactSize?: any;
14
- initialFiles?: any;
15
- uploaderConfig?: {
16
- useFormData?: boolean;
17
- fileFieldName?: string;
18
- } | any;
19
- }
20
- export interface IFileHocOutput {
21
- uploader?: any;
22
- files?: any[];
23
- onBrowse?: any;
24
- onRemove?: any;
25
- onAdd?: any;
26
- }
27
- declare const _default: () => any;
28
- export default _default;
package/hoc/file.js DELETED
@@ -1,45 +0,0 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- var desc = Object.getOwnPropertyDescriptor(m, k);
16
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
- desc = { enumerable: true, get: function() { return m[k]; } };
18
- }
19
- Object.defineProperty(o, k2, desc);
20
- }) : (function(o, m, k, k2) {
21
- if (k2 === undefined) k2 = k;
22
- o[k2] = m[k];
23
- }));
24
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
- Object.defineProperty(o, "default", { enumerable: true, value: v });
26
- }) : function(o, v) {
27
- o["default"] = v;
28
- });
29
- var __importStar = (this && this.__importStar) || function (mod) {
30
- if (mod && mod.__esModule) return mod;
31
- var result = {};
32
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
- __setModuleDefault(result, mod);
34
- return result;
35
- };
36
- var __importDefault = (this && this.__importDefault) || function (mod) {
37
- return (mod && mod.__esModule) ? mod : { "default": mod };
38
- };
39
- exports.__esModule = true;
40
- var React = __importStar(require("react"));
41
- var useFile_1 = __importDefault(require("../hooks/useFile"));
42
- exports["default"] = (function () { return function (WrappedComponent) { return function FileHOC(props) {
43
- var fileProps = (0, useFile_1["default"])(props);
44
- return (React.createElement(WrappedComponent, __assign({}, props, { uploader: fileProps.uploader, files: fileProps.files, onBrowse: fileProps.onBrowse, onRemove: fileProps.onRemove })));
45
- }; }; });
package/hoc/http.d.ts DELETED
@@ -1,7 +0,0 @@
1
- /**
2
- * Http HOC
3
- * Обертка для асинхронного получения данных с бекенда. В отличии от `Fetch HOC`, он не хранит данные в Redux Store
4
- * и не добавляет "Загрузка..." при запросе.
5
- */
6
- declare const _default: (requestFunc: (props: any) => any) => any;
7
- export default _default;
package/hoc/http.js DELETED
@@ -1,53 +0,0 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- var desc = Object.getOwnPropertyDescriptor(m, k);
16
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
- desc = { enumerable: true, get: function() { return m[k]; } };
18
- }
19
- Object.defineProperty(o, k2, desc);
20
- }) : (function(o, m, k, k2) {
21
- if (k2 === undefined) k2 = k;
22
- o[k2] = m[k];
23
- }));
24
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
- Object.defineProperty(o, "default", { enumerable: true, value: v });
26
- }) : function(o, v) {
27
- o["default"] = v;
28
- });
29
- var __importStar = (this && this.__importStar) || function (mod) {
30
- if (mod && mod.__esModule) return mod;
31
- var result = {};
32
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
- __setModuleDefault(result, mod);
34
- return result;
35
- };
36
- var __importDefault = (this && this.__importDefault) || function (mod) {
37
- return (mod && mod.__esModule) ? mod : { "default": mod };
38
- };
39
- exports.__esModule = true;
40
- var React = __importStar(require("react"));
41
- var react_1 = require("react");
42
- var useFetch_1 = __importDefault(require("../hooks/useFetch"));
43
- /**
44
- * Http HOC
45
- * Обертка для асинхронного получения данных с бекенда. В отличии от `Fetch HOC`, он не хранит данные в Redux Store
46
- * и не добавляет "Загрузка..." при запросе.
47
- */
48
- exports["default"] = (function (requestFunc) { return function (WrappedComponent) { return function HttpHoc(props) {
49
- var onFetch = (0, react_1.useCallback)(function () { return requestFunc(props); }, [props]);
50
- var _a = (0, useFetch_1["default"])({ onFetch: onFetch }), data = _a.data, isLoading = _a.isLoading, fetch = _a.fetch;
51
- var fetchUpdate = (0, react_1.useCallback)(function (newParams) { return fetch({ params: newParams }); }, [fetch]);
52
- return (React.createElement(WrappedComponent, __assign({}, props, data, { isLoading: isLoading, fetch: fetchUpdate })));
53
- }; }; });
package/hoc/index.d.ts DELETED
@@ -1,8 +0,0 @@
1
- import application from './application';
2
- import bem from './bem';
3
- import components from './components';
4
- import connect from './connect';
5
- import fetch from './fetch';
6
- import http from './http';
7
- import layout from './layout';
8
- export { application, bem, components, connect, fetch, http, layout, };
package/hoc/index.js DELETED
@@ -1,20 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- exports.__esModule = true;
6
- exports.layout = exports.http = exports.fetch = exports.connect = exports.components = exports.bem = exports.application = void 0;
7
- var application_1 = __importDefault(require("./application"));
8
- exports.application = application_1["default"];
9
- var bem_1 = __importDefault(require("./bem"));
10
- exports.bem = bem_1["default"];
11
- var components_1 = __importDefault(require("./components"));
12
- exports.components = components_1["default"];
13
- var connect_1 = __importDefault(require("./connect"));
14
- exports.connect = connect_1["default"];
15
- var fetch_1 = __importDefault(require("./fetch"));
16
- exports.fetch = fetch_1["default"];
17
- var http_1 = __importDefault(require("./http"));
18
- exports.http = http_1["default"];
19
- var layout_1 = __importDefault(require("./layout"));
20
- exports.layout = layout_1["default"];
package/hoc/layout.d.ts DELETED
@@ -1,30 +0,0 @@
1
- import { IComponentsHocOutput } from './components';
2
- import { IRouteItem } from '../ui/nav/Router/Router';
3
- /**
4
- * Layout HOC
5
- * Используется для макета (layout) приложения, добавляя в него данные авторизации и статуса рендера страницы.
6
- * Передаваемый первым аргументом `initAction` будет вызываться каждый раз, когда необходимо обновить данные
7
- * авторизации (первая загрузка страницы, логин/регистация и выход).
8
- */
9
- export interface ILayoutHocInput {
10
- route?: IRouteItem;
11
- user?: {
12
- role: string;
13
- };
14
- data?: Record<string, unknown>;
15
- initializeCounter?: number;
16
- components: IComponentsHocOutput;
17
- isInitialized?: boolean;
18
- redirectPageId?: any;
19
- }
20
- export interface ILayoutHocOutput {
21
- http?: any;
22
- status: string;
23
- renderError: string;
24
- route: IRouteItem;
25
- user: any;
26
- data: any;
27
- isInitialized: boolean;
28
- }
29
- declare const _default: (initAction?: any) => any;
30
- export default _default;
package/hoc/layout.js DELETED
@@ -1,48 +0,0 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- var desc = Object.getOwnPropertyDescriptor(m, k);
16
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
- desc = { enumerable: true, get: function() { return m[k]; } };
18
- }
19
- Object.defineProperty(o, k2, desc);
20
- }) : (function(o, m, k, k2) {
21
- if (k2 === undefined) k2 = k;
22
- o[k2] = m[k];
23
- }));
24
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
- Object.defineProperty(o, "default", { enumerable: true, value: v });
26
- }) : function(o, v) {
27
- o["default"] = v;
28
- });
29
- var __importStar = (this && this.__importStar) || function (mod) {
30
- if (mod && mod.__esModule) return mod;
31
- var result = {};
32
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
- __setModuleDefault(result, mod);
34
- return result;
35
- };
36
- var __importDefault = (this && this.__importDefault) || function (mod) {
37
- return (mod && mod.__esModule) ? mod : { "default": mod };
38
- };
39
- exports.__esModule = true;
40
- var React = __importStar(require("react"));
41
- var useLayout_1 = __importDefault(require("../hooks/useLayout"));
42
- exports["default"] = (function (initAction) {
43
- if (initAction === void 0) { initAction = null; }
44
- return function (WrappedComponent) { return function LayoutHoc(props) {
45
- var layoutProps = (0, useLayout_1["default"])(initAction);
46
- return (React.createElement(WrappedComponent, __assign({}, props, { status: layoutProps.status, renderError: layoutProps.error }, layoutProps.data)));
47
- }; };
48
- });