@danikokonn/yarik-frontend-lib 2.0.49-test8 → 2.0.49
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/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 +2 -1
- package/dist/components/Navigation/NavMenu.d.ts.map +1 -1
- package/dist/components/Navigation/NavMenu.js +2 -2
- package/dist/components/Navigation/Navigation.d.ts.map +1 -1
- package/dist/components/Navigation/Navigation.js +4 -4
- 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.map +1 -1
- package/dist/components/RichFilterTextField/RichFilterTextField.js +13 -14
- 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 +7 -1
- package/dist/components/SmartTable/SmartTable.d.ts.map +1 -1
- package/dist/components/SmartTable/SmartTable.js +60 -49
- package/dist/components/SmartTable/SmartTableProps.d.ts +16 -8
- 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/SubtaskItem/SubtaskItem.d.ts.map +1 -1
- package/dist/components/SubtaskItem/SubtaskItem.js +57 -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 -56
- 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 +14 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/utils.d.ts +2 -2
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +2 -2
- package/package.json +10 -5
- 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 -35
|
@@ -1,71 +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
|
-
setChannelBusy(false);
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
enqueueSnackbar("Соединение с Airflow установлено!", "info");
|
|
33
|
-
}
|
|
34
|
-
setChannelBusy(false);
|
|
35
|
-
},
|
|
36
|
-
errorHandler: (resp) => {
|
|
37
|
-
if (!airflowAvailable && firstRun) {
|
|
38
|
-
setFirstRun(false);
|
|
39
|
-
enqueueSnackbar(`Не удалось установить соединение с Airflow!${(resp?.status == 401 && " Ошибка авторизации.") || ""}`, "warning");
|
|
40
|
-
}
|
|
41
|
-
if (airflowAvailable) {
|
|
42
|
-
setAirflowAvailable(false);
|
|
43
|
-
enqueueSnackbar(`Потеряно соединение с Airflow!${(resp?.status == 401 && " Ошибка авторизации.") || ""}`, "warning");
|
|
44
|
-
}
|
|
45
|
-
setChannelBusy(false);
|
|
46
|
-
},
|
|
47
|
-
}).catch((e) => {
|
|
48
|
-
if (e)
|
|
49
|
-
console.log(e);
|
|
50
|
-
setChannelBusy(false);
|
|
51
|
-
});
|
|
52
|
-
};
|
|
53
|
-
useEffect(() => {
|
|
54
|
-
if (firstRun) {
|
|
55
|
-
checkConnection();
|
|
56
|
-
}
|
|
57
|
-
const interval = setInterval(() => {
|
|
58
|
-
if (channelBusy)
|
|
59
|
-
return;
|
|
60
|
-
checkConnection();
|
|
61
|
-
}, 10000);
|
|
62
|
-
return () => {
|
|
63
|
-
clearInterval(interval);
|
|
64
|
-
};
|
|
65
|
-
}, [firstRun, airflowAvailable, dagId, channelBusy]);
|
|
66
52
|
const onLostConnection = () => {
|
|
67
|
-
|
|
68
|
-
enqueueSnackbar("Потеряно соединение с Airflow!", "warning");
|
|
53
|
+
mutate();
|
|
69
54
|
};
|
|
70
55
|
return (React.createElement(AirflowContext.Provider, { value: {
|
|
71
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
|
};
|
package/dist/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SxProps } from "@mui/material";
|
|
2
|
-
import {
|
|
2
|
+
import { ComponentType } from "react";
|
|
3
3
|
export type DagState = "queued" | "running" | "success" | "failed";
|
|
4
4
|
export type TaskState = "success" | "running" | "failed" | "upstream_failed" | "skipped" | "up_for_retry" | "up_for_reschedule" | "queued" | "none" | "scheduled" | "deferred" | "removed" | "restarting";
|
|
5
5
|
export interface Dag {
|
|
@@ -44,6 +44,7 @@ export interface DagRun {
|
|
|
44
44
|
end_date: string;
|
|
45
45
|
username: string;
|
|
46
46
|
filename?: string;
|
|
47
|
+
compress?: boolean;
|
|
47
48
|
};
|
|
48
49
|
}
|
|
49
50
|
export interface TaskInstance {
|
|
@@ -65,7 +66,13 @@ export interface Logs {
|
|
|
65
66
|
}
|
|
66
67
|
export interface Column<T extends {
|
|
67
68
|
id: string | number;
|
|
68
|
-
}
|
|
69
|
+
} = {
|
|
70
|
+
id: string | number;
|
|
71
|
+
}, P extends {
|
|
72
|
+
row: T;
|
|
73
|
+
} = {
|
|
74
|
+
row: T;
|
|
75
|
+
}, S extends object = object> {
|
|
69
76
|
name: string;
|
|
70
77
|
displayName: string;
|
|
71
78
|
fieldName: string;
|
|
@@ -77,7 +84,10 @@ export interface Column<T extends {
|
|
|
77
84
|
colSx?: SxProps;
|
|
78
85
|
resizable?: boolean;
|
|
79
86
|
type?: "datetime" | "bool" | "text" | "number";
|
|
80
|
-
|
|
81
|
-
|
|
87
|
+
SearchComponent?: ComponentType<S>;
|
|
88
|
+
SearchComponentProps?: S;
|
|
89
|
+
CellContentComponent?: ComponentType<P>;
|
|
90
|
+
CellContentComponentProps?: Omit<P, "row">;
|
|
91
|
+
onClick?(row: T): void;
|
|
82
92
|
}
|
|
83
93
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
+
import { PopoverOrigin } from "@mui/material";
|
|
1
2
|
import "moment-duration-format";
|
|
2
3
|
import "moment/locale/ru";
|
|
3
4
|
import { DagState, TaskState } from "./types";
|
|
4
|
-
import { PopoverOrigin } from "@mui/material";
|
|
5
5
|
export declare function getCSRFToken(): string;
|
|
6
6
|
export declare function setCSRFToken(newToken: string): void;
|
|
7
|
-
export declare function prettyDatetime(datetime
|
|
7
|
+
export declare function prettyDatetime(datetime?: string | null): string;
|
|
8
8
|
export declare const taskStateText: (taskState: DagState | TaskState | string | null | undefined) => "Завершена" | "Ошибка" | "В очереди" | "Выполняется" | "Нет состояния";
|
|
9
9
|
export declare const formatDate: (date: string) => string;
|
|
10
10
|
export declare const formatDuration: (duration: number) => string;
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,wBAAwB,CAAC;AAEhC,OAAO,kBAAkB,CAAC;AAG1B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAE9C,wBAAgB,YAAY,WAI3B;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,QAI5C;AAED,wBAAgB,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,UAMtD;AAED,eAAO,MAAM,aAAa,GACxB,WAAW,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,2EAc5D,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,WAWtC,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,UAAU,MAAM,WAK9C,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,WAyC5C,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,UAAU,MAAM,EAAE,OAAO,MAAM,WAkB9D,CAAC;AACF,eAAO,MAAM,aAAa,GACxB,aAAa,MAAM,EACnB,WAAW,MAAM,EACjB,QAAQ,MAAM,EACd,QAAQ,MAAM,EACd,UAAU,OAAO,EACjB,aAAa,MAAM,WAWpB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,aAAa,MAAM,EAAE,WAAW,MAAM,WACR,CAAC;AAEhE,wBAAgB,WAAW,CAAC,IAAI,SAAS,OAAO,EAAE,EAChD,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,IAAI,EACjC,KAAK,EAAE,MAAM,aAKD,IAAI,UAUjB;AAED,eAAO,MAAM,yBAAyB,GACpC,UAAU,WAAW,EACrB,eAAe,MAAM,KAOhB,aACN,CAAC;AAEF,eAAO,MAAM,4BAA4B,GACvC,UAAU,WAAW,EACrB,eAAe,MAAM,KAOhB,aACN,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,OAAO,MAAM,KAAG,MAMzC,CAAC;AAEF,eAAO,MAAM,UAAU,GACrB,UAAU,MAAM,EAChB,QAAQ,MAAM,EACd,OAAO,MAAM,KACZ,MAMF,CAAC;AACF,eAAO,MAAM,UAAU,GAAI,SAAS,MAAM,EAAE,OAAO,MAAM,KAAG,MAM3D,CAAC;AACF,eAAO,MAAM,WAAW,GACtB,SAAS,MAAM,EACf,UAAU,MAAM,EAChB,QAAQ,MAAM,EACd,OAAO,MAAM,KACZ,MAMF,CAAC;AACF,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,KAAG,MAM7C,CAAC;AACF,eAAO,MAAM,aAAa,GACxB,KAAK,MAAM,EAEX,KAAK,GAAG,EACR,QAAQ,OAAO,KACd,MAKF,CAAC;AACF,eAAO,MAAM,WAAW,GAAI,YAAY,MAAM,KAAG,MAKhD,CAAC;AACF,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,KAAG,MAK3C,CAAC"}
|
package/dist/utils.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import moment from "moment";
|
|
2
|
-
import moment_tz from "moment-timezone";
|
|
3
2
|
import "moment-duration-format";
|
|
3
|
+
import moment_tz from "moment-timezone";
|
|
4
4
|
import "moment/locale/ru";
|
|
5
|
-
import { slugify } from "transliteration";
|
|
6
5
|
import { useCallback, useRef } from "react";
|
|
6
|
+
import { slugify } from "transliteration";
|
|
7
7
|
export function getCSRFToken() {
|
|
8
8
|
return document.getElementsByName("csrfmiddlewaretoken")[0].value;
|
|
9
9
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@danikokonn/yarik-frontend-lib",
|
|
3
|
-
"version": "2.0.49
|
|
3
|
+
"version": "2.0.49",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"description": "",
|
|
6
6
|
"author": "",
|
|
@@ -16,10 +16,14 @@
|
|
|
16
16
|
"@eslint/js": "^9.34.0",
|
|
17
17
|
"@types/lodash.debounce": "^4.0.9",
|
|
18
18
|
"@types/moment-duration-format": "^2.2.6",
|
|
19
|
+
"@types/react": "^19.1.12",
|
|
20
|
+
"@types/react-dom": "^19.1.9",
|
|
19
21
|
"eslint": "^9.34.0",
|
|
20
22
|
"eslint-plugin-react": "^7.37.5",
|
|
21
23
|
"globals": "^16.3.0",
|
|
22
24
|
"prettier": "3.6.2",
|
|
25
|
+
"react": "^19.1.1",
|
|
26
|
+
"react-dom": "^19.1.1",
|
|
23
27
|
"ts-loader": "^9.5.4",
|
|
24
28
|
"tss-react": "^4.9.19",
|
|
25
29
|
"typescript": "^5.9.2",
|
|
@@ -31,22 +35,23 @@
|
|
|
31
35
|
"@mui/icons-material": "^7.3.2",
|
|
32
36
|
"@mui/material": "^7.3.2",
|
|
33
37
|
"@mui/x-date-pickers": "^8.11.1",
|
|
34
|
-
"@types/react": "^19.1.12",
|
|
35
|
-
"@types/react-dom": "^19.1.9",
|
|
36
38
|
"css-loader": "^7.1.2",
|
|
37
39
|
"moment": "^2.30.1",
|
|
38
40
|
"moment-duration-format": "^2.3.2",
|
|
39
41
|
"moment-timezone": "^0.6.0",
|
|
40
42
|
"notistack": "^3.0.2",
|
|
41
|
-
"react": "^19.1.1",
|
|
42
|
-
"react-dom": "^19.1.1",
|
|
43
43
|
"react-imask": "^7.6.1",
|
|
44
44
|
"react-json-tree": "^0.20.0",
|
|
45
45
|
"react-router": "^7.8.2",
|
|
46
46
|
"react-virtuoso": "^4.14.0",
|
|
47
47
|
"style-loader": "^4.0.0",
|
|
48
|
+
"swr": "^2.3.7",
|
|
48
49
|
"transliteration": "^2.3.5"
|
|
49
50
|
},
|
|
51
|
+
"peerDependencies": {
|
|
52
|
+
"react": ">=18 <20",
|
|
53
|
+
"react-dom": ">=18 <20"
|
|
54
|
+
},
|
|
50
55
|
"scripts": {
|
|
51
56
|
"test": "echo \"Error: no test specified\"",
|
|
52
57
|
"build": "tsc"
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import React, { ReactNode } from "react";
|
|
2
|
-
import { TableRowProps } from "@mui/material/TableRow";
|
|
3
|
-
import { Column } from "../../types";
|
|
4
|
-
import { SxProps, Theme } from "@mui/material";
|
|
5
|
-
interface RowProps<T> {
|
|
6
|
-
row: T;
|
|
7
|
-
columns: Column<T>[];
|
|
8
|
-
sx?: SxProps<Theme>;
|
|
9
|
-
selectedRow?: string | null;
|
|
10
|
-
ContentWrapper?({ children, dagId, rowProps, }: {
|
|
11
|
-
children?: ReactNode;
|
|
12
|
-
dagId: string;
|
|
13
|
-
rowProps: TableRowProps;
|
|
14
|
-
}): React.JSX.Element;
|
|
15
|
-
onDoubleClick?(rowId: string | null): void;
|
|
16
|
-
onSelectRow(rowId: string | null): void;
|
|
17
|
-
controlComponent?(row: T): ReactNode;
|
|
18
|
-
controlComponentColSx?: SxProps<Theme>;
|
|
19
|
-
}
|
|
20
|
-
export default function RuleRow<T>({ row, columns, sx, selectedRow, onSelectRow, onDoubleClick, controlComponent, ContentWrapper, controlComponentColSx, }: RowProps<T>): React.JSX.Element;
|
|
21
|
-
export {};
|
|
22
|
-
//# sourceMappingURL=RuleRow.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RuleRow.d.ts","sourceRoot":"","sources":["../../../src/components/SmartTable/RuleRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGzC,OAAiB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAE/C,UAAU,QAAQ,CAAC,CAAC;IAClB,GAAG,EAAE,CAAC,CAAC;IACP,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IACrB,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,cAAc,CAAC,CAAC,EACd,QAAQ,EACR,KAAK,EACL,QAAQ,GACT,EAAE;QACD,QAAQ,CAAC,EAAE,SAAS,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,aAAa,CAAC;KACzB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;IACtB,aAAa,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAC3C,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IACxC,gBAAgB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,SAAS,CAAC;IACrC,qBAAqB,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;CACxC;AAgDD,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,CAAC,EAAE,EACjC,GAAG,EACH,OAAO,EACP,EAAE,EACF,WAAW,EACX,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,qBAAqB,GACtB,EAAE,QAAQ,CAAC,CAAC,CAAC,qBAoCb"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import TableCell from "@mui/material/TableCell";
|
|
3
|
-
const hiddenTextStyle = {
|
|
4
|
-
whiteSpace: "nowrap",
|
|
5
|
-
overflow: "hidden",
|
|
6
|
-
textOverflow: "ellipsis",
|
|
7
|
-
paddingTop: "0.25rem",
|
|
8
|
-
paddingBottom: "0.25rem",
|
|
9
|
-
};
|
|
10
|
-
function RowContent({ row, columns, onSelectRow, onDoubleClick, }) {
|
|
11
|
-
return (React.createElement(React.Fragment, null, columns.map((col, idx) => (React.createElement(TableCell, { sx: {
|
|
12
|
-
...hiddenTextStyle,
|
|
13
|
-
...col.colSx,
|
|
14
|
-
}, key: idx, onClick: (_) => {
|
|
15
|
-
const selection = window.getSelection();
|
|
16
|
-
if (selection && selection.toString().length > 0)
|
|
17
|
-
return;
|
|
18
|
-
onSelectRow(Object(row).id);
|
|
19
|
-
}, onDoubleClick: (_) => onDoubleClick(Object(row).id) }, col.cellContentComponent
|
|
20
|
-
? col.cellContentComponent(row)
|
|
21
|
-
: Object(row)[col.name] || "N/A")))));
|
|
22
|
-
}
|
|
23
|
-
export default function RuleRow({ row, columns, sx, selectedRow, onSelectRow, onDoubleClick, controlComponent, ContentWrapper, controlComponentColSx, }) {
|
|
24
|
-
const content = (React.createElement(React.Fragment, null,
|
|
25
|
-
React.createElement(RowContent, { onSelectRow: onSelectRow, onDoubleClick: onDoubleClick || (() => { }), row: row, columns: columns }),
|
|
26
|
-
controlComponent && (React.createElement(TableCell, { sx: {
|
|
27
|
-
textAlign: "center",
|
|
28
|
-
cursor: "default",
|
|
29
|
-
p: 0,
|
|
30
|
-
...controlComponentColSx,
|
|
31
|
-
} }, controlComponent(row)))));
|
|
32
|
-
return ContentWrapper ? (React.createElement(ContentWrapper, { dagId: Object(row).id, rowProps: {
|
|
33
|
-
selected: Object(row).id === selectedRow,
|
|
34
|
-
} }, content)) : (content);
|
|
35
|
-
}
|