@danikokonn/yarik-frontend-lib 2.0.3-3.legacy.test9 → 2.0.4-9.test4
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/dist/components/ActionDialog/ActionDialog.d.ts +19 -0
- package/dist/components/ActionDialog/ActionDialog.d.ts.map +1 -1
- package/dist/components/ActionDialog/ActionDialog.js +19 -0
- package/dist/components/ActionDialog/ActionDialogProps.d.ts +15 -0
- package/dist/components/ActionDialog/ActionDialogProps.d.ts.map +1 -1
- package/dist/components/ColumnSearchInput/ColumnSearchInput.d.ts +12 -0
- package/dist/components/ColumnSearchInput/ColumnSearchInput.d.ts.map +1 -1
- package/dist/components/ColumnSearchInput/ColumnSearchInput.js +12 -0
- package/dist/components/ColumnSearchInput/ColumnSearchInputProps.d.ts +9 -0
- package/dist/components/ColumnSearchInput/ColumnSearchInputProps.d.ts.map +1 -1
- package/dist/components/DateTimeRangePicker/DateTimeRangePicker.d.ts +1 -1
- package/dist/components/DateTimeRangePicker/DateTimeRangePicker.d.ts.map +1 -1
- package/dist/components/DateTimeRangePicker/DateTimeRangePicker.js +3 -3
- package/dist/components/DateTimeRangePicker/DateTimeRangePickerProps.d.ts +1 -0
- package/dist/components/DateTimeRangePicker/DateTimeRangePickerProps.d.ts.map +1 -1
- package/dist/components/DatetimeRangeInput/DatetimeRangeInput.d.ts +21 -2
- package/dist/components/DatetimeRangeInput/DatetimeRangeInput.d.ts.map +1 -1
- package/dist/components/DatetimeRangeInput/DatetimeRangeInput.js +22 -3
- package/dist/components/DatetimeRangeInput/DatetimeRangeInputProps.d.ts +30 -0
- package/dist/components/DatetimeRangeInput/DatetimeRangeInputProps.d.ts.map +1 -1
- package/dist/components/Footer/Footer.d.ts.map +1 -1
- package/dist/components/Footer/Footer.js +2 -2
- package/dist/components/IpAddressSwitchableInput/IpAddressSwitchableInput.d.ts.map +1 -1
- package/dist/components/IpAddressSwitchableInput/IpAddressSwitchableInput.js +1 -1
- package/dist/components/Navigation/NavMenu.d.ts +3 -2
- package/dist/components/Navigation/NavMenu.d.ts.map +1 -1
- package/dist/components/Navigation/NavMenu.js +4 -3
- package/dist/components/Navigation/Navigation.d.ts +1 -1
- package/dist/components/Navigation/Navigation.d.ts.map +1 -1
- package/dist/components/Navigation/Navigation.js +15 -12
- package/dist/components/Navigation/NavigationProps.d.ts +2 -1
- package/dist/components/Navigation/NavigationProps.d.ts.map +1 -1
- package/dist/components/PageWrapper/PageWrapper.d.ts.map +1 -1
- package/dist/components/PageWrapper/PageWrapper.js +4 -3
- package/dist/components/RichFilterTextField/RichFilterTextField.d.ts +1 -1
- package/dist/components/RichFilterTextField/RichFilterTextField.d.ts.map +1 -1
- package/dist/components/RichFilterTextField/RichFilterTextField.js +104 -88
- package/dist/components/RichFilterTextField/RichFilterTextFieldProps.d.ts +4 -0
- package/dist/components/RichFilterTextField/RichFilterTextFieldProps.d.ts.map +1 -1
- package/dist/components/RichFilterTextField/utils.d.ts.map +1 -1
- package/dist/components/RichFilterTextField/utils.js +2 -2
- package/dist/components/SmartTable/RowContent.d.ts +22 -6
- package/dist/components/SmartTable/RowContent.d.ts.map +1 -1
- package/dist/components/SmartTable/RowContent.js +45 -29
- package/dist/components/SmartTable/SmartTable.d.ts +9 -1
- package/dist/components/SmartTable/SmartTable.d.ts.map +1 -1
- package/dist/components/SmartTable/SmartTable.js +117 -38
- package/dist/components/SmartTable/SmartTableProps.d.ts +21 -9
- package/dist/components/SmartTable/SmartTableProps.d.ts.map +1 -1
- package/dist/components/SmartTable/TableHeader.d.ts.map +1 -1
- package/dist/components/SmartTable/TableHeader.js +3 -2
- package/dist/components/SortBtn/SortBtn.d.ts.map +1 -1
- package/dist/components/SortBtn/SortBtn.js +2 -1
- package/dist/components/SubtaskItem/SubtaskItem.d.ts.map +1 -1
- package/dist/components/SubtaskItem/SubtaskItem.js +31 -11
- package/dist/components/TaskLoader/TaskLoader.d.ts +1 -1
- package/dist/components/TaskLoader/TaskLoader.d.ts.map +1 -1
- package/dist/components/TaskLoader/TaskLoader.js +24 -13
- package/dist/components/TaskLoader/TaskLoaderProps.d.ts +1 -0
- package/dist/components/TaskLoader/TaskLoaderProps.d.ts.map +1 -1
- package/dist/components/TaskStateDialog/TaskStateDialog.d.ts +1 -1
- package/dist/components/TaskStateDialog/TaskStateDialog.d.ts.map +1 -1
- package/dist/components/TaskStateDialog/TaskStateDialog.js +8 -5
- package/dist/components/TaskStateDialog/TaskStateDialogProps.d.ts +2 -1
- package/dist/components/TaskStateDialog/TaskStateDialogProps.d.ts.map +1 -1
- package/dist/components/icons/GenerateAndRunIcon.d.ts +1 -1
- package/dist/components/icons/GenerateAndRunIcon.d.ts.map +1 -1
- package/dist/components/icons/GenerateAndRunIcon.js +5 -2
- package/dist/components/icons/GenerateIcon.d.ts +1 -1
- package/dist/components/icons/GenerateIcon.d.ts.map +1 -1
- package/dist/components/icons/GenerateIcon.js +5 -2
- package/dist/components/icons/IntegerIcon.d.ts +1 -1
- package/dist/components/icons/IntegerIcon.d.ts.map +1 -1
- package/dist/components/icons/IntegerIcon.js +5 -2
- package/dist/components/icons/QueueIcon.d.ts +1 -1
- package/dist/components/icons/QueueIcon.d.ts.map +1 -1
- package/dist/components/icons/QueueIcon.js +5 -2
- package/dist/components/icons/RangeIcon.d.ts +1 -1
- package/dist/components/icons/RangeIcon.d.ts.map +1 -1
- package/dist/components/icons/RangeIcon.js +5 -2
- package/dist/components/icons/RunIcon.d.ts +1 -1
- package/dist/components/icons/RunIcon.d.ts.map +1 -1
- package/dist/components/icons/RunIcon.js +5 -2
- package/dist/http.d.ts +2 -2
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +4 -29
- package/dist/providers/AirflowProvider.d.ts +5 -4
- package/dist/providers/AirflowProvider.d.ts.map +1 -1
- package/dist/providers/AirflowProvider.js +41 -55
- package/dist/providers/DagStateProvider.d.ts +6 -5
- package/dist/providers/DagStateProvider.d.ts.map +1 -1
- package/dist/providers/DagStateProvider.js +35 -10
- package/dist/providers/SessionProvider.d.ts +3 -1
- package/dist/providers/SessionProvider.d.ts.map +1 -1
- package/dist/providers/SessionProvider.js +10 -4
- package/dist/providers/SnackBarProvider.d.ts +2 -2
- package/dist/providers/SnackBarProvider.d.ts.map +1 -1
- package/dist/providers/SnackBarProvider.js +1 -1
- package/dist/types.d.ts +17 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/utils.d.ts +3 -3
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +3 -2
- package/package.json +27 -19
- package/dist/components/SmartTable/RuleRow.d.ts +0 -22
- package/dist/components/SmartTable/RuleRow.d.ts.map +0 -1
- package/dist/components/SmartTable/RuleRow.js +0 -40
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenerateIcon.d.ts","sourceRoot":"","sources":["../../../src/components/icons/GenerateIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"GenerateIcon.d.ts","sourceRoot":"","sources":["../../../src/components/icons/GenerateIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,eAAe,EAAY,MAAM,eAAe,CAAC;AACzE,OAAO,KAAK,MAAM,OAAO,CAAC;AAoG1B,UAAU,iBAAkB,SAAQ,eAAe;IACjD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,QAAA,MAAM,YAAY,GAAI,wBAAwB,iBAAiB,sBAe9D,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import React from "react";
|
|
2
1
|
import { createSvgIcon, useTheme } from "@mui/material";
|
|
2
|
+
import React from "react";
|
|
3
3
|
const GenerateSvgIcon = createSvgIcon(React.createElement("svg", { width: "38", height: "38", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 38 38", preserveAspectRatio: "xMidYMid", version: "1.1" },
|
|
4
4
|
React.createElement("g", { className: "layer", display: "inline" },
|
|
5
5
|
React.createElement("g", { id: "s", transform: "translate(-0.02 -0.02) matrix(1.63693 0 0 1.63225 -3.38016 7.32488)" },
|
|
@@ -22,6 +22,9 @@ const GenerateSvgIcon = createSvgIcon(React.createElement("svg", { width: "38",
|
|
|
22
22
|
// todo: Обобщить, создать хук
|
|
23
23
|
const GenerateIcon = ({ disabled, ...props }) => {
|
|
24
24
|
const theme = useTheme();
|
|
25
|
-
return disabled ? (React.createElement(GenerateSvgIcon, { sx: {
|
|
25
|
+
return disabled ? (React.createElement(GenerateSvgIcon, { sx: {
|
|
26
|
+
"--disabled": theme.vars?.palette.action.disabled || theme.palette.action.disabled,
|
|
27
|
+
...props.sx,
|
|
28
|
+
}, ...props })) : (React.createElement(GenerateSvgIcon, { ...props }));
|
|
26
29
|
};
|
|
27
30
|
export default GenerateIcon;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IntegerIcon.d.ts","sourceRoot":"","sources":["../../../src/components/icons/IntegerIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"IntegerIcon.d.ts","sourceRoot":"","sources":["../../../src/components/icons/IntegerIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,eAAe,EAAY,MAAM,eAAe,CAAC;AACzE,OAAO,KAAK,MAAM,OAAO,CAAC;AAyB1B,UAAU,gBAAiB,SAAQ,eAAe;IAChD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,QAAA,MAAM,WAAW,GAAI,wBAAwB,gBAAgB,sBAe5D,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import React from "react";
|
|
2
1
|
import { createSvgIcon, useTheme } from "@mui/material";
|
|
2
|
+
import React from "react";
|
|
3
3
|
const IntegerSvgIcon = createSvgIcon(React.createElement("svg", { fill: "var(--disabled, currentColor)", viewBox: "0 0 32 32", id: "icon", xmlns: "http://www.w3.org/2000/svg", stroke: "var(--disabled, currentColor)" },
|
|
4
4
|
React.createElement("g", { id: "SVGRepo_bgCarrier", strokeWidth: "0" }),
|
|
5
5
|
React.createElement("g", { id: "SVGRepo_tracerCarrier", strokeLinecap: "round", strokeLinejoin: "round" }),
|
|
@@ -10,6 +10,9 @@ const IntegerSvgIcon = createSvgIcon(React.createElement("svg", { fill: "var(--d
|
|
|
10
10
|
// todo: Обобщить, создать хук
|
|
11
11
|
const IntegerIcon = ({ disabled, ...props }) => {
|
|
12
12
|
const theme = useTheme();
|
|
13
|
-
return disabled ? (React.createElement(IntegerSvgIcon, { sx: {
|
|
13
|
+
return disabled ? (React.createElement(IntegerSvgIcon, { sx: {
|
|
14
|
+
"--disabled": theme.vars?.palette.action.disabled || theme.palette.action.disabled,
|
|
15
|
+
...props.sx,
|
|
16
|
+
}, ...props })) : (React.createElement(IntegerSvgIcon, { ...props }));
|
|
14
17
|
};
|
|
15
18
|
export default IntegerIcon;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueueIcon.d.ts","sourceRoot":"","sources":["../../../src/components/icons/QueueIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"QueueIcon.d.ts","sourceRoot":"","sources":["../../../src/components/icons/QueueIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,eAAe,EAAY,MAAM,eAAe,CAAC;AACzE,OAAO,KAAK,MAAM,OAAO,CAAC;AA+B1B,UAAU,cAAe,SAAQ,eAAe;IAC9C,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,QAAA,MAAM,SAAS,GAAI,wBAAwB,cAAc,sBAexD,CAAC;AAEF,eAAe,SAAS,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import React from "react";
|
|
2
1
|
import { createSvgIcon, useTheme } from "@mui/material";
|
|
2
|
+
import React from "react";
|
|
3
3
|
const QueueSvgIcon = createSvgIcon(React.createElement("svg", { viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", fill: "#000000" },
|
|
4
4
|
React.createElement("g", { id: "SVGRepo_bgCarrier", strokeWidth: "0" }),
|
|
5
5
|
React.createElement("g", { id: "SVGRepo_tracerCarrier", strokeLinecap: "round", strokeLinejoin: "round" }),
|
|
@@ -10,6 +10,9 @@ const QueueSvgIcon = createSvgIcon(React.createElement("svg", { viewBox: "0 0 24
|
|
|
10
10
|
// todo: Обобщить, создать хук
|
|
11
11
|
const QueueIcon = ({ disabled, ...props }) => {
|
|
12
12
|
const theme = useTheme();
|
|
13
|
-
return disabled ? (React.createElement(QueueSvgIcon, { sx: {
|
|
13
|
+
return disabled ? (React.createElement(QueueSvgIcon, { sx: {
|
|
14
|
+
"--disabled": theme.vars?.palette.action.disabled || theme.palette.action.disabled,
|
|
15
|
+
...props.sx,
|
|
16
|
+
}, ...props })) : (React.createElement(QueueSvgIcon, { ...props }));
|
|
14
17
|
};
|
|
15
18
|
export default QueueIcon;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RangeIcon.d.ts","sourceRoot":"","sources":["../../../src/components/icons/RangeIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"RangeIcon.d.ts","sourceRoot":"","sources":["../../../src/components/icons/RangeIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,eAAe,EAAY,MAAM,eAAe,CAAC;AACzE,OAAO,KAAK,MAAM,OAAO,CAAC;AA8C1B,UAAU,WAAY,SAAQ,eAAe;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,QAAA,MAAM,MAAM,GAAI,wBAAwB,WAAW,sBAelD,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import React from "react";
|
|
2
1
|
import { createSvgIcon, useTheme } from "@mui/material";
|
|
2
|
+
import React from "react";
|
|
3
3
|
const IpSVGIcon = createSvgIcon(React.createElement("svg", { viewBox: "0 0 48 48", xmlns: "http://www.w3.org/2000/svg", fill: "#000000", stroke: "#000000", strokeWidth: "4.176" },
|
|
4
4
|
React.createElement("g", { id: "SVGRepo_bgCarrier", strokeWidth: "0" }),
|
|
5
5
|
React.createElement("g", { id: "SVGRepo_tracerCarrier", strokeLinecap: "round", strokeLinejoin: "round" }),
|
|
@@ -10,6 +10,9 @@ const IpSVGIcon = createSvgIcon(React.createElement("svg", { viewBox: "0 0 48 48
|
|
|
10
10
|
// todo: Обобщить, создать хук
|
|
11
11
|
const IpIcon = ({ disabled, ...props }) => {
|
|
12
12
|
const theme = useTheme();
|
|
13
|
-
return disabled ? (React.createElement(IpSVGIcon, { sx: {
|
|
13
|
+
return disabled ? (React.createElement(IpSVGIcon, { sx: {
|
|
14
|
+
"--disabled": theme.vars?.palette.action.disabled || theme.palette.action.disabled,
|
|
15
|
+
...props.sx,
|
|
16
|
+
}, ...props })) : (React.createElement(IpSVGIcon, { ...props }));
|
|
14
17
|
};
|
|
15
18
|
export default IpIcon;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RunIcon.d.ts","sourceRoot":"","sources":["../../../src/components/icons/RunIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"RunIcon.d.ts","sourceRoot":"","sources":["../../../src/components/icons/RunIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,eAAe,EAAY,MAAM,eAAe,CAAC;AACzE,OAAO,KAAK,MAAM,OAAO,CAAC;AAqD1B,UAAU,YAAa,SAAQ,eAAe;IAC5C,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,QAAA,MAAM,OAAO,GAAI,wBAAwB,YAAY,sBAepD,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import React from "react";
|
|
2
1
|
import { createSvgIcon, useTheme } from "@mui/material";
|
|
2
|
+
import React from "react";
|
|
3
3
|
const RunSvgIcon = createSvgIcon(React.createElement("svg", { width: "38", height: "38", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 38 38", preserveAspectRatio: "xMidYMid", version: "1.1" },
|
|
4
4
|
React.createElement("g", { className: "layer", display: "inline" },
|
|
5
5
|
React.createElement("g", { id: "s", transform: "translate(-0.02 -0.02) matrix(1.63693 0 0 1.63225 -3.38016 7.32488)" },
|
|
@@ -13,6 +13,9 @@ const RunSvgIcon = createSvgIcon(React.createElement("svg", { width: "38", heigh
|
|
|
13
13
|
// todo: Обобщить, создать хук
|
|
14
14
|
const RunIcon = ({ disabled, ...props }) => {
|
|
15
15
|
const theme = useTheme();
|
|
16
|
-
return disabled ? (React.createElement(RunSvgIcon, { sx: {
|
|
16
|
+
return disabled ? (React.createElement(RunSvgIcon, { sx: {
|
|
17
|
+
"--disabled": theme.vars?.palette.action.disabled || theme.palette.action.disabled,
|
|
18
|
+
...props.sx,
|
|
19
|
+
}, ...props })) : (React.createElement(RunSvgIcon, { ...props }));
|
|
17
20
|
};
|
|
18
21
|
export default RunIcon;
|
package/dist/http.d.ts
CHANGED
|
@@ -6,8 +6,8 @@ interface BaseCallParamsPOST extends BaseCallParams {
|
|
|
6
6
|
headers?: HeadersInit;
|
|
7
7
|
}
|
|
8
8
|
interface ExtraCallParams<T, P> {
|
|
9
|
-
successHandler?: (resp
|
|
10
|
-
errorHandler?: (resp
|
|
9
|
+
successHandler?: (resp: T) => void;
|
|
10
|
+
errorHandler?: (resp: P & {
|
|
11
11
|
status: number;
|
|
12
12
|
}) => void;
|
|
13
13
|
}
|
package/dist/http.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,UAAU,cAAc;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,UAAU,kBAAmB,SAAQ,cAAc;IACjD,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAED,UAAU,eAAe,CAAC,CAAC,EAAE,CAAC;IAC5B,cAAc,CAAC,EAAE,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,UAAU,cAAc;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,UAAU,kBAAmB,SAAQ,cAAc;IACjD,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAED,UAAU,eAAe,CAAC,CAAC,EAAE,CAAC;IAC5B,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;IACnC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CACvD;AAED,KAAK,UAAU,CAAC,CAAC,EAAE,CAAC,IAAI,cAAc,GAAG,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/D,KAAK,cAAc,CAAC,CAAC,EAAE,CAAC,IAAI,kBAAkB,GAAG,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AA2BvE,wBAAsB,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,EAC5C,GAAG,EACH,IAAI,GACL,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAYxD;AAED,wBAAsB,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,EAC7C,GAAG,EACH,IAAI,EACJ,OAAO,GACR,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAY5D;AAED,wBAAsB,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,EACrC,GAAG,EACH,IAAI,EACJ,cAAc,EACd,YAAY,GACb,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBlC;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,EACtC,GAAG,EACH,IAAI,EACJ,OAAO,EACP,cAAc,EACd,YAAY,GACb,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,iBActB"}
|
package/dist/http.js
CHANGED
|
@@ -20,13 +20,7 @@ async function _postRequest({ url, data, headers }) {
|
|
|
20
20
|
}
|
|
21
21
|
export async function getRequestPromise({ url, data, }) {
|
|
22
22
|
const resp = await _getRequest({ url, data });
|
|
23
|
-
if (resp.
|
|
24
|
-
// #NOTE
|
|
25
|
-
// На данный момент редирект - признак просроченной сессии,
|
|
26
|
-
// так как на json запрос нет явного ответа редиректом, только через декоратор логина,
|
|
27
|
-
// если же в будущем будет добавлен какой-то иной редирект в ответ за json запрос,
|
|
28
|
-
// то нужно будет поменять код в данном блоке
|
|
29
|
-
// location.reload();
|
|
23
|
+
if (resp.status === 401) {
|
|
30
24
|
console.log("Session expired");
|
|
31
25
|
}
|
|
32
26
|
if (resp.ok) {
|
|
@@ -38,13 +32,7 @@ export async function getRequestPromise({ url, data, }) {
|
|
|
38
32
|
}
|
|
39
33
|
export async function postRequestPromise({ url, data, headers, }) {
|
|
40
34
|
const resp = await _postRequest({ url, data, headers });
|
|
41
|
-
if (resp.
|
|
42
|
-
// #NOTE
|
|
43
|
-
// На данный момент редирект - признак просроченной сессии,
|
|
44
|
-
// так как на json запрос нет явного ответа редиректом, только через декоратор логина,
|
|
45
|
-
// если же в будущем будет добавлен какой-то иной редирект в ответ за json запрос,
|
|
46
|
-
// то нужно будет поменять код в данном блоке
|
|
47
|
-
// location.reload();
|
|
35
|
+
if (resp.status === 401) {
|
|
48
36
|
console.log("Session expired");
|
|
49
37
|
}
|
|
50
38
|
if (resp.ok) {
|
|
@@ -56,13 +44,7 @@ export async function postRequestPromise({ url, data, headers, }) {
|
|
|
56
44
|
}
|
|
57
45
|
export async function getRequest({ url, data, successHandler, errorHandler, }) {
|
|
58
46
|
const resp = await _getRequest({ url, data });
|
|
59
|
-
if (resp.
|
|
60
|
-
// #NOTE
|
|
61
|
-
// На данный момент редирект - признак просроченной сессии,
|
|
62
|
-
// так как на json запрос нет явного ответа редиректом, только через декоратор логина,
|
|
63
|
-
// если же в будущем будет добавлен какой-то иной редирект в ответ за json запрос,
|
|
64
|
-
// то нужно будет поменять код в данном блоке
|
|
65
|
-
// location.reload();
|
|
47
|
+
if (resp.status === 401) {
|
|
66
48
|
console.log("Session expired");
|
|
67
49
|
}
|
|
68
50
|
if (resp.ok) {
|
|
@@ -78,14 +60,7 @@ export async function getRequest({ url, data, successHandler, errorHandler, }) {
|
|
|
78
60
|
}
|
|
79
61
|
export async function postRequest({ url, data, headers, successHandler, errorHandler, }) {
|
|
80
62
|
const resp = await _postRequest({ url, data, headers });
|
|
81
|
-
if (resp.
|
|
82
|
-
// #NOTE
|
|
83
|
-
// На данный момент редирект - признак просроченной сессии,
|
|
84
|
-
// так как на json запрос нет явного ответа редиректом, только через декоратор логина,
|
|
85
|
-
// если же в будущем будет добавлен какой-то иной редирект в ответ за json запрос,
|
|
86
|
-
// то нужно будет поменять код в данном блоке
|
|
87
|
-
// location.reload();
|
|
88
|
-
// Надо продумать этот вопрос получше
|
|
63
|
+
if (resp.status === 401) {
|
|
89
64
|
console.log("Session expired");
|
|
90
65
|
}
|
|
91
66
|
if (resp.ok) {
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
interface AirflowProviderProps {
|
|
3
3
|
children?: React.ReactNode;
|
|
4
|
-
dagId
|
|
4
|
+
dagId?: string | null;
|
|
5
|
+
onUnauthorized(): void;
|
|
5
6
|
}
|
|
6
|
-
export declare const AirflowProvider: ({ children, dagId: _dagId, }: AirflowProviderProps) => React.JSX.Element;
|
|
7
|
+
export declare const AirflowProvider: ({ children, dagId: _dagId, onUnauthorized, }: AirflowProviderProps) => React.JSX.Element;
|
|
7
8
|
export declare const useAirflowContext: () => {
|
|
9
|
+
dagId?: string | null;
|
|
8
10
|
airflowAvailable: boolean;
|
|
9
|
-
dagId: string;
|
|
10
|
-
onChangeDagId(dagId: string): void;
|
|
11
|
+
onChangeDagId(dagId: string | null): void;
|
|
11
12
|
onLostConnection(): void;
|
|
12
13
|
};
|
|
13
14
|
export default AirflowProvider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AirflowProvider.d.ts","sourceRoot":"","sources":["../../src/providers/AirflowProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"AirflowProvider.d.ts","sourceRoot":"","sources":["../../src/providers/AirflowProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2D,MAAM,OAAO,CAAC;AAgBhF,UAAU,oBAAoB;IAC5B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,cAAc,IAAI,IAAI,CAAC;CACxB;AAED,eAAO,MAAM,eAAe,GAAI,8CAI7B,oBAAoB,sBAyEtB,CAAC;AAEF,eAAO,MAAM,iBAAiB;YAhGpB,MAAM,GAAG,IAAI;sBACH,OAAO;yBACJ,MAAM,GAAG,IAAI,GAAG,IAAI;wBACrB,IAAI;CA+FzB,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
@@ -1,70 +1,56 @@
|
|
|
1
|
-
import React, { createContext, useCallback, useContext,
|
|
2
|
-
import
|
|
1
|
+
import React, { createContext, useCallback, useContext, useState } from "react";
|
|
2
|
+
import useSWR from "swr";
|
|
3
3
|
import { useSnackbarContext } from "./SnackBarProvider";
|
|
4
4
|
const AirflowContext = createContext({
|
|
5
|
-
airflowAvailable: false,
|
|
6
5
|
dagId: "",
|
|
6
|
+
airflowAvailable: false,
|
|
7
7
|
onChangeDagId: () => { },
|
|
8
8
|
onLostConnection: () => { },
|
|
9
9
|
});
|
|
10
|
-
export const AirflowProvider = ({ children, dagId: _dagId, }) => {
|
|
11
|
-
const
|
|
10
|
+
export const AirflowProvider = ({ children, dagId: _dagId, onUnauthorized, }) => {
|
|
11
|
+
const fetcher = async (url) => {
|
|
12
|
+
const res = await fetch(url);
|
|
13
|
+
if (res.status === 401) {
|
|
14
|
+
onUnauthorized();
|
|
15
|
+
}
|
|
16
|
+
if (!res.ok && res.status !== 404) {
|
|
17
|
+
const error = new Error("An error occurred while fetching the data.");
|
|
18
|
+
throw { ...error, info: await res.json(), status: res.status };
|
|
19
|
+
}
|
|
20
|
+
return res.json();
|
|
21
|
+
};
|
|
22
|
+
const { enqueueSnackbar } = useSnackbarContext();
|
|
12
23
|
const [dagId, setDagId] = useState(_dagId);
|
|
13
24
|
const [firstRun, setFirstRun] = useState(true);
|
|
14
|
-
const
|
|
15
|
-
const
|
|
25
|
+
const [previousAirflowAvailable, setPreviousAirflowAvailable] = useState(false);
|
|
26
|
+
const { error, mutate } = useSWR("airflow/check_connection", fetcher, {
|
|
27
|
+
refreshInterval: 10000,
|
|
28
|
+
onSuccess: () => {
|
|
29
|
+
if (firstRun) {
|
|
30
|
+
setFirstRun(false);
|
|
31
|
+
}
|
|
32
|
+
else if (!previousAirflowAvailable) {
|
|
33
|
+
enqueueSnackbar("Соединение с Airflow установлено!", "info");
|
|
34
|
+
}
|
|
35
|
+
setPreviousAirflowAvailable(true);
|
|
36
|
+
},
|
|
37
|
+
onError: () => {
|
|
38
|
+
if (firstRun) {
|
|
39
|
+
enqueueSnackbar(`Не удалось установить соединение с Airflow!`, "warning");
|
|
40
|
+
setFirstRun(false);
|
|
41
|
+
}
|
|
42
|
+
else if (previousAirflowAvailable) {
|
|
43
|
+
enqueueSnackbar(`Потеряно соединение с Airflow!`, "warning");
|
|
44
|
+
}
|
|
45
|
+
setPreviousAirflowAvailable(false);
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
const airflowAvailable = error == null;
|
|
16
49
|
const setContext = useCallback((dagId) => {
|
|
17
50
|
setDagId(dagId);
|
|
18
51
|
}, [dagId, setDagId]);
|
|
19
|
-
const checkConnection = () => {
|
|
20
|
-
setChannelBusy(true);
|
|
21
|
-
getRequest({
|
|
22
|
-
url: "airflow/check_connection",
|
|
23
|
-
data: {},
|
|
24
|
-
successHandler: (_resp) => {
|
|
25
|
-
if (!airflowAvailable) {
|
|
26
|
-
setAirflowAvailable(true);
|
|
27
|
-
if (firstRun) {
|
|
28
|
-
setFirstRun(false);
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
enqueueSnackbar("Соединение с Airflow установлено!", "info");
|
|
32
|
-
}
|
|
33
|
-
setChannelBusy(false);
|
|
34
|
-
},
|
|
35
|
-
errorHandler: (resp) => {
|
|
36
|
-
if (!airflowAvailable && firstRun) {
|
|
37
|
-
setFirstRun(false);
|
|
38
|
-
enqueueSnackbar(`Не удалось установить соединение с Airflow!${(resp?.status == 401 && " Ошибка авторизации.") || ""}`, "warning");
|
|
39
|
-
}
|
|
40
|
-
if (airflowAvailable) {
|
|
41
|
-
setAirflowAvailable(false);
|
|
42
|
-
enqueueSnackbar(`Потеряно соединение с Airflow!${(resp?.status == 401 && " Ошибка авторизации.") || ""}`, "warning");
|
|
43
|
-
}
|
|
44
|
-
setChannelBusy(false);
|
|
45
|
-
},
|
|
46
|
-
}).catch((e) => {
|
|
47
|
-
if (e)
|
|
48
|
-
console.log(e);
|
|
49
|
-
setChannelBusy(false);
|
|
50
|
-
});
|
|
51
|
-
};
|
|
52
|
-
useEffect(() => {
|
|
53
|
-
if (firstRun) {
|
|
54
|
-
checkConnection();
|
|
55
|
-
}
|
|
56
|
-
const interval = setInterval(() => {
|
|
57
|
-
if (channelBusy)
|
|
58
|
-
return;
|
|
59
|
-
checkConnection();
|
|
60
|
-
}, 10000);
|
|
61
|
-
return () => {
|
|
62
|
-
clearInterval(interval);
|
|
63
|
-
};
|
|
64
|
-
}, [firstRun, airflowAvailable, dagId, channelBusy]);
|
|
65
52
|
const onLostConnection = () => {
|
|
66
|
-
|
|
67
|
-
enqueueSnackbar("Потеряно соединение с Airflow!", "warning");
|
|
53
|
+
mutate();
|
|
68
54
|
};
|
|
69
55
|
return (React.createElement(AirflowContext.Provider, { value: {
|
|
70
56
|
airflowAvailable,
|
|
@@ -5,21 +5,22 @@ interface DagRunStateProviderProps {
|
|
|
5
5
|
dagRun?: DagRun;
|
|
6
6
|
autorun?: boolean;
|
|
7
7
|
poolingByUser?: boolean;
|
|
8
|
-
autorunHandler?(dagRun: DagRun | null, autorun: boolean): void;
|
|
9
8
|
taskInstances?: TaskInstances;
|
|
10
|
-
|
|
9
|
+
autorunHandler?(dagRun: DagRun | null, autorun: boolean): void;
|
|
10
|
+
onUnauthorized(): void;
|
|
11
11
|
}
|
|
12
|
-
|
|
12
|
+
declare const DagRunStateProvider: ({ children, dagRun: _dagRun, autorun: _autorun, poolingByUser, taskInstances: _taskInstances, autorunHandler, onUnauthorized, }: DagRunStateProviderProps) => React.JSX.Element;
|
|
13
13
|
export declare const useDagRunStateContext: () => {
|
|
14
14
|
isActive: boolean;
|
|
15
15
|
autorun: boolean;
|
|
16
16
|
dagRun: DagRun | null;
|
|
17
17
|
taskInstances: TaskInstances | null;
|
|
18
|
-
|
|
18
|
+
dagStartedOnce: boolean;
|
|
19
|
+
onUpdateState(isActive: boolean, dagRun: DagRun | null, taskInstances: TaskInstances | null): void;
|
|
20
|
+
onDagStarted: () => void;
|
|
19
21
|
activate(): void;
|
|
20
22
|
fetchState(): void;
|
|
21
23
|
setAutorun(autorun: boolean): void;
|
|
22
|
-
scanInterval: number;
|
|
23
24
|
};
|
|
24
25
|
export default DagRunStateProvider;
|
|
25
26
|
//# sourceMappingURL=DagStateProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DagStateProvider.d.ts","sourceRoot":"","sources":["../../src/providers/DagStateProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAMN,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"DagStateProvider.d.ts","sourceRoot":"","sources":["../../src/providers/DagStateProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAMN,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAgCjD,UAAU,wBAAwB;IAChC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,cAAc,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/D,cAAc,IAAI,IAAI,CAAC;CACxB;AAED,QAAA,MAAM,mBAAmB,GAAI,iIAQ1B,wBAAwB,sBAuJ1B,CAAC;AAEF,eAAO,MAAM,qBAAqB;cAtMtB,OAAO;aACR,OAAO;YACR,MAAM,GAAG,IAAI;mBACN,aAAa,GAAG,IAAI;oBACnB,OAAO;4BAEX,OAAO,UACT,MAAM,GAAG,IAAI,iBACN,aAAa,GAAG,IAAI,GAClC,IAAI;kBACO,MAAM,IAAI;gBACZ,IAAI;kBACF,IAAI;wBACE,OAAO,GAAG,IAAI;CA2LnC,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
|
|
@@ -7,15 +7,18 @@ const DagRunStateContext = createContext({
|
|
|
7
7
|
autorun: false,
|
|
8
8
|
dagRun: null,
|
|
9
9
|
taskInstances: null,
|
|
10
|
+
dagStartedOnce: false,
|
|
10
11
|
onUpdateState: () => { },
|
|
12
|
+
onDagStarted: () => { },
|
|
11
13
|
fetchState: () => { },
|
|
12
14
|
activate: () => { },
|
|
13
15
|
setAutorun: () => { },
|
|
14
|
-
scanInterval: 300,
|
|
15
16
|
});
|
|
16
|
-
|
|
17
|
+
const DagRunStateProvider = ({ children, dagRun: _dagRun, autorun: _autorun, poolingByUser, taskInstances: _taskInstances, autorunHandler, onUnauthorized, }) => {
|
|
17
18
|
const { airflowAvailable, dagId, onLostConnection } = useAirflowContext();
|
|
18
|
-
const [isActive, setIsActive] = useState(
|
|
19
|
+
const [isActive, setIsActive] = useState(Boolean(_dagRun
|
|
20
|
+
? ["queued", "running"].includes(_dagRun.state)
|
|
21
|
+
: dagId && dagId?.length > 0));
|
|
19
22
|
const [channelBusy, setChannelBusy] = useState(false);
|
|
20
23
|
const [autorun, setAutorun] = useState(_autorun || false);
|
|
21
24
|
const activate = useCallback(() => {
|
|
@@ -23,11 +26,15 @@ export const DagRunStateProvider = ({ children, dagRun: _dagRun, autorun: _autor
|
|
|
23
26
|
}, [isActive, setIsActive]);
|
|
24
27
|
const [dagRun, setDagRun] = useState(_dagRun || null);
|
|
25
28
|
const [taskInstances, setTaskInstances] = useState(_taskInstances || null);
|
|
29
|
+
const [dagStartedOnce, setDagStartedOnce] = useState(false);
|
|
26
30
|
const { enqueueSnackbar } = useSnackbarContext();
|
|
31
|
+
// При изменении пропса dagId надо сбросить текущее состояние
|
|
27
32
|
useEffect(() => {
|
|
28
33
|
setDagRun(null);
|
|
34
|
+
setIsActive(true);
|
|
29
35
|
setTaskInstances(null);
|
|
30
36
|
}, [dagId]);
|
|
37
|
+
// Запрос ревалидации
|
|
31
38
|
const updateState = () => {
|
|
32
39
|
setChannelBusy(true);
|
|
33
40
|
getRequest({
|
|
@@ -50,6 +57,9 @@ export const DagRunStateProvider = ({ children, dagRun: _dagRun, autorun: _autor
|
|
|
50
57
|
setChannelBusy(false);
|
|
51
58
|
},
|
|
52
59
|
errorHandler: (resp) => {
|
|
60
|
+
if (resp?.status === 401) {
|
|
61
|
+
onUnauthorized();
|
|
62
|
+
}
|
|
53
63
|
if (resp?.status !== 404) {
|
|
54
64
|
enqueueSnackbar(`Ошибка при обновлении состояния задачи${(dagId && " ") || ""}${dagId || ""}!`, "error");
|
|
55
65
|
}
|
|
@@ -62,10 +72,14 @@ export const DagRunStateProvider = ({ children, dagRun: _dagRun, autorun: _autor
|
|
|
62
72
|
setChannelBusy(false);
|
|
63
73
|
},
|
|
64
74
|
}).catch((e) => {
|
|
75
|
+
if (e?.status === 401) {
|
|
76
|
+
onUnauthorized();
|
|
77
|
+
}
|
|
65
78
|
console.log(e);
|
|
66
79
|
setChannelBusy(false);
|
|
67
80
|
});
|
|
68
81
|
};
|
|
82
|
+
// Подписка на ревалидацию
|
|
69
83
|
useEffect(() => {
|
|
70
84
|
const interval = setInterval(() => {
|
|
71
85
|
if (!airflowAvailable && !isActive)
|
|
@@ -80,10 +94,11 @@ export const DagRunStateProvider = ({ children, dagRun: _dagRun, autorun: _autor
|
|
|
80
94
|
clearInterval(interval);
|
|
81
95
|
};
|
|
82
96
|
}, [airflowAvailable, isActive, dagRun, dagId, autorun, channelBusy]);
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
}, [dagRun]);
|
|
97
|
+
// Вроде как ненужный эффект
|
|
98
|
+
// useEffect(() => {
|
|
99
|
+
// if (dagRun == null) setIsActive(true);
|
|
100
|
+
// }, [dagRun]);
|
|
101
|
+
// Запуск autorunHandler при завершении dagRun
|
|
87
102
|
useEffect(() => {
|
|
88
103
|
if (!airflowAvailable)
|
|
89
104
|
return;
|
|
@@ -92,21 +107,31 @@ export const DagRunStateProvider = ({ children, dagRun: _dagRun, autorun: _autor
|
|
|
92
107
|
if (autorunHandler)
|
|
93
108
|
autorunHandler(dagRun, autorun);
|
|
94
109
|
}, [airflowAvailable, isActive, dagRun, autorun]);
|
|
95
|
-
const onUpdateState = (isActive,
|
|
110
|
+
const onUpdateState = (isActive, newDagRun, taskInstances) => {
|
|
96
111
|
setIsActive(isActive);
|
|
97
|
-
setDagRun(
|
|
112
|
+
setDagRun(newDagRun);
|
|
113
|
+
if (newDagRun == null)
|
|
114
|
+
setIsActive(true);
|
|
98
115
|
setTaskInstances(taskInstances);
|
|
99
116
|
};
|
|
117
|
+
/**Вызывать сразу после запуска дага*/
|
|
118
|
+
const onDagStarted = () => {
|
|
119
|
+
setIsActive(true);
|
|
120
|
+
setDagRun(null);
|
|
121
|
+
setTaskInstances(null);
|
|
122
|
+
setDagStartedOnce(true);
|
|
123
|
+
};
|
|
100
124
|
return (React.createElement(DagRunStateContext.Provider, { value: {
|
|
101
125
|
isActive,
|
|
102
126
|
autorun,
|
|
103
127
|
dagRun,
|
|
104
128
|
taskInstances,
|
|
129
|
+
dagStartedOnce,
|
|
105
130
|
onUpdateState,
|
|
131
|
+
onDagStarted,
|
|
106
132
|
activate,
|
|
107
133
|
fetchState: updateState,
|
|
108
134
|
setAutorun: (autorun) => setAutorun(autorun),
|
|
109
|
-
scanInterval: scanInterval || 1,
|
|
110
135
|
} }, children));
|
|
111
136
|
};
|
|
112
137
|
export const useDagRunStateContext = () => {
|
|
@@ -2,8 +2,10 @@ import React from "react";
|
|
|
2
2
|
interface SessionProviderProps {
|
|
3
3
|
children?: React.ReactNode;
|
|
4
4
|
pollingInterval: number;
|
|
5
|
+
autoRedirect?: boolean;
|
|
6
|
+
onUnauthorized?(): void;
|
|
5
7
|
}
|
|
6
|
-
|
|
8
|
+
declare const SessionProvider: ({ children, pollingInterval, autoRedirect, onUnauthorized, }: SessionProviderProps) => React.JSX.Element;
|
|
7
9
|
export declare const useSessionContext: () => {
|
|
8
10
|
expiresIn: number;
|
|
9
11
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionProvider.d.ts","sourceRoot":"","sources":["../../src/providers/SessionProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyD,MAAM,OAAO,CAAC;AAU9E,UAAU,oBAAoB;IAC5B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,
|
|
1
|
+
{"version":3,"file":"SessionProvider.d.ts","sourceRoot":"","sources":["../../src/providers/SessionProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyD,MAAM,OAAO,CAAC;AAU9E,UAAU,oBAAoB;IAC5B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,IAAI,IAAI,CAAC;CACzB;AAED,QAAA,MAAM,eAAe,GAAI,8DAKtB,oBAAoB,sBA8CtB,CAAC;AAEF,eAAO,MAAM,iBAAiB;eAjEjB,MAAM;CAmElB,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
@@ -1,21 +1,27 @@
|
|
|
1
1
|
import React, { createContext, useContext, useEffect, useState } from "react";
|
|
2
|
-
import { useSnackbarContext } from "./SnackBarProvider";
|
|
3
2
|
import { getRequest } from "../http";
|
|
3
|
+
import { useSnackbarContext } from "./SnackBarProvider";
|
|
4
4
|
const SessionContext = createContext({
|
|
5
5
|
expiresIn: 0,
|
|
6
6
|
});
|
|
7
|
-
|
|
7
|
+
const SessionProvider = ({ children, pollingInterval, autoRedirect, onUnauthorized, }) => {
|
|
8
8
|
const { enqueueSnackbar } = useSnackbarContext();
|
|
9
9
|
const [expires, setExpires] = useState(false);
|
|
10
10
|
const alertExpire = () => enqueueSnackbar("Сессия завершилась, перезагрузите страницу!", "default");
|
|
11
11
|
const fetchSessionExpiryAge = () => getRequest({
|
|
12
12
|
url: "base/check_session",
|
|
13
13
|
successHandler: (_resp) => { },
|
|
14
|
-
errorHandler: (
|
|
14
|
+
errorHandler: (e) => {
|
|
15
|
+
if (e?.status === 401 && autoRedirect && onUnauthorized) {
|
|
16
|
+
onUnauthorized();
|
|
17
|
+
}
|
|
15
18
|
setExpires(true);
|
|
16
19
|
alertExpire();
|
|
17
20
|
},
|
|
18
|
-
}).catch(() => {
|
|
21
|
+
}).catch((e) => {
|
|
22
|
+
if (e?.status === 401 && autoRedirect && onUnauthorized) {
|
|
23
|
+
onUnauthorized();
|
|
24
|
+
}
|
|
19
25
|
setExpires(true);
|
|
20
26
|
alertExpire();
|
|
21
27
|
});
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
interface SnackBarProps {
|
|
3
|
-
children?: React.ReactNode;
|
|
3
|
+
children?: React.ReactNode | React.ReactNode[];
|
|
4
4
|
}
|
|
5
|
-
|
|
5
|
+
declare const SnackBarProvider: ({ children }: SnackBarProps) => React.JSX.Element;
|
|
6
6
|
export declare const useSnackbarContext: () => {
|
|
7
7
|
enqueueSnackbar(message: string, variant: "default" | "error" | "success" | "warning" | "info"): void;
|
|
8
8
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SnackBarProvider.d.ts","sourceRoot":"","sources":["../../src/providers/SnackBarProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AAezD,UAAU,aAAa;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"SnackBarProvider.d.ts","sourceRoot":"","sources":["../../src/providers/SnackBarProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AAezD,UAAU,aAAa;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;CAChD;AA8CD,QAAA,MAAM,gBAAgB,GAAI,cAAc,aAAa,sBAMpD,CAAC;AAEF,eAAO,MAAM,kBAAkB;6BA/DlB,MAAM,WACN,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAC5D,IAAI;CA+DR,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|
|
@@ -25,7 +25,7 @@ const SnackBarProviderUtilities = ({ children }) => {
|
|
|
25
25
|
enqueueSnackbar: handleEnqueueSnackbar,
|
|
26
26
|
} }, children));
|
|
27
27
|
};
|
|
28
|
-
|
|
28
|
+
const SnackBarProvider = ({ children }) => {
|
|
29
29
|
return (React.createElement(SnackbarProvider, { maxSnack: 5, autoHideDuration: 5000, preventDuplicate: true },
|
|
30
30
|
React.createElement(SnackBarProviderUtilities, null, children)));
|
|
31
31
|
};
|