@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.
Files changed (77) hide show
  1. package/dist/components/Footer/Footer.d.ts.map +1 -1
  2. package/dist/components/Footer/Footer.js +2 -2
  3. package/dist/components/IpAddressSwitchableInput/IpAddressSwitchableInput.d.ts.map +1 -1
  4. package/dist/components/IpAddressSwitchableInput/IpAddressSwitchableInput.js +1 -1
  5. package/dist/components/Navigation/NavMenu.d.ts +2 -1
  6. package/dist/components/Navigation/NavMenu.d.ts.map +1 -1
  7. package/dist/components/Navigation/NavMenu.js +2 -2
  8. package/dist/components/Navigation/Navigation.d.ts.map +1 -1
  9. package/dist/components/Navigation/Navigation.js +4 -4
  10. package/dist/components/PageWrapper/PageWrapper.d.ts.map +1 -1
  11. package/dist/components/PageWrapper/PageWrapper.js +4 -3
  12. package/dist/components/RichFilterTextField/RichFilterTextField.d.ts.map +1 -1
  13. package/dist/components/RichFilterTextField/RichFilterTextField.js +13 -14
  14. package/dist/components/SmartTable/RowContent.d.ts +22 -6
  15. package/dist/components/SmartTable/RowContent.d.ts.map +1 -1
  16. package/dist/components/SmartTable/RowContent.js +45 -29
  17. package/dist/components/SmartTable/SmartTable.d.ts +7 -1
  18. package/dist/components/SmartTable/SmartTable.d.ts.map +1 -1
  19. package/dist/components/SmartTable/SmartTable.js +60 -49
  20. package/dist/components/SmartTable/SmartTableProps.d.ts +16 -8
  21. package/dist/components/SmartTable/SmartTableProps.d.ts.map +1 -1
  22. package/dist/components/SmartTable/TableHeader.d.ts.map +1 -1
  23. package/dist/components/SmartTable/TableHeader.js +3 -2
  24. package/dist/components/SubtaskItem/SubtaskItem.d.ts.map +1 -1
  25. package/dist/components/SubtaskItem/SubtaskItem.js +57 -11
  26. package/dist/components/TaskLoader/TaskLoader.d.ts +1 -1
  27. package/dist/components/TaskLoader/TaskLoader.d.ts.map +1 -1
  28. package/dist/components/TaskLoader/TaskLoader.js +24 -13
  29. package/dist/components/TaskLoader/TaskLoaderProps.d.ts +1 -0
  30. package/dist/components/TaskLoader/TaskLoaderProps.d.ts.map +1 -1
  31. package/dist/components/TaskStateDialog/TaskStateDialog.d.ts +1 -1
  32. package/dist/components/TaskStateDialog/TaskStateDialog.d.ts.map +1 -1
  33. package/dist/components/TaskStateDialog/TaskStateDialog.js +8 -5
  34. package/dist/components/TaskStateDialog/TaskStateDialogProps.d.ts +2 -1
  35. package/dist/components/TaskStateDialog/TaskStateDialogProps.d.ts.map +1 -1
  36. package/dist/components/icons/GenerateAndRunIcon.d.ts +1 -1
  37. package/dist/components/icons/GenerateAndRunIcon.d.ts.map +1 -1
  38. package/dist/components/icons/GenerateAndRunIcon.js +5 -2
  39. package/dist/components/icons/GenerateIcon.d.ts +1 -1
  40. package/dist/components/icons/GenerateIcon.d.ts.map +1 -1
  41. package/dist/components/icons/GenerateIcon.js +5 -2
  42. package/dist/components/icons/IntegerIcon.d.ts +1 -1
  43. package/dist/components/icons/IntegerIcon.d.ts.map +1 -1
  44. package/dist/components/icons/IntegerIcon.js +5 -2
  45. package/dist/components/icons/QueueIcon.d.ts +1 -1
  46. package/dist/components/icons/QueueIcon.d.ts.map +1 -1
  47. package/dist/components/icons/QueueIcon.js +5 -2
  48. package/dist/components/icons/RangeIcon.d.ts +1 -1
  49. package/dist/components/icons/RangeIcon.d.ts.map +1 -1
  50. package/dist/components/icons/RangeIcon.js +5 -2
  51. package/dist/components/icons/RunIcon.d.ts +1 -1
  52. package/dist/components/icons/RunIcon.d.ts.map +1 -1
  53. package/dist/components/icons/RunIcon.js +5 -2
  54. package/dist/http.d.ts +2 -2
  55. package/dist/http.d.ts.map +1 -1
  56. package/dist/http.js +4 -29
  57. package/dist/providers/AirflowProvider.d.ts +5 -4
  58. package/dist/providers/AirflowProvider.d.ts.map +1 -1
  59. package/dist/providers/AirflowProvider.js +41 -56
  60. package/dist/providers/DagStateProvider.d.ts +6 -5
  61. package/dist/providers/DagStateProvider.d.ts.map +1 -1
  62. package/dist/providers/DagStateProvider.js +35 -10
  63. package/dist/providers/SessionProvider.d.ts +3 -1
  64. package/dist/providers/SessionProvider.d.ts.map +1 -1
  65. package/dist/providers/SessionProvider.js +10 -4
  66. package/dist/providers/SnackBarProvider.d.ts +2 -2
  67. package/dist/providers/SnackBarProvider.d.ts.map +1 -1
  68. package/dist/providers/SnackBarProvider.js +1 -1
  69. package/dist/types.d.ts +14 -4
  70. package/dist/types.d.ts.map +1 -1
  71. package/dist/utils.d.ts +2 -2
  72. package/dist/utils.d.ts.map +1 -1
  73. package/dist/utils.js +2 -2
  74. package/package.json +10 -5
  75. package/dist/components/SmartTable/RuleRow.d.ts +0 -22
  76. package/dist/components/SmartTable/RuleRow.d.ts.map +0 -1
  77. package/dist/components/SmartTable/RuleRow.js +0 -35
@@ -1,71 +1,56 @@
1
- import React, { createContext, useCallback, useContext, useEffect, useState, } from "react";
2
- import { getRequest } from "../http";
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 [airflowAvailable, setAirflowAvailable] = useState(false);
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 { enqueueSnackbar } = useSnackbarContext();
15
- const [channelBusy, setChannelBusy] = useState(false);
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
- setAirflowAvailable(false);
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
- scanInterval?: number;
9
+ autorunHandler?(dagRun: DagRun | null, autorun: boolean): void;
10
+ onUnauthorized(): void;
11
11
  }
12
- export declare const DagRunStateProvider: ({ children, dagRun: _dagRun, autorun: _autorun, poolingByUser, taskInstances: _taskInstances, autorunHandler, scanInterval, }: DagRunStateProviderProps) => React.JSX.Element;
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
- onUpdateState(isActive: boolean, dagRun: DagRun, taskInstances: TaskInstances): void;
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;AACf,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AA+BjD,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,cAAc,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/D,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,mBAAmB,GAAI,+HAQjC,wBAAwB,sBA2H1B,CAAC;AAEF,eAAO,MAAM,qBAAqB;cAxKtB,OAAO;aACR,OAAO;YACR,MAAM,GAAG,IAAI;mBACN,aAAa,GAAG,IAAI;4BAEvB,OAAO,UACT,MAAM,iBACC,aAAa,GAC3B,IAAI;gBACK,IAAI;kBACF,IAAI;wBACE,OAAO,GAAG,IAAI;kBACpB,MAAM;CA8JrB,CAAC;AAEF,eAAe,mBAAmB,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
- export const DagRunStateProvider = ({ children, dagRun: _dagRun, autorun: _autorun, poolingByUser, taskInstances: _taskInstances, autorunHandler, scanInterval, }) => {
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(_dagRun ? ["queued", "running"].includes(_dagRun.state) : dagId?.length > 0);
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
- useEffect(() => {
84
- if (dagRun == null)
85
- setIsActive(true);
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, dagRun, taskInstances) => {
110
+ const onUpdateState = (isActive, newDagRun, taskInstances) => {
96
111
  setIsActive(isActive);
97
- setDagRun(dagRun);
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
- export declare const SessionProvider: ({ children, pollingInterval, }: SessionProviderProps) => React.JSX.Element;
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,eAAO,MAAM,eAAe,GAAI,gCAG7B,oBAAoB,sBAwCtB,CAAC;AAEF,eAAO,MAAM,iBAAiB;eAvDjB,MAAM;CAyDlB,CAAC;AAEF,eAAe,eAAe,CAAC"}
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
- export const SessionProvider = ({ children, pollingInterval, }) => {
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: (_resp) => {
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
- export declare const SnackBarProvider: ({ children }: SnackBarProps) => React.JSX.Element;
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;CAC5B;AA8CD,eAAO,MAAM,gBAAgB,GAAI,cAAc,aAAa,sBAM3D,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"}
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
- export const SnackBarProvider = ({ children }) => {
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 { ReactNode } from "react";
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
- searchComponent?(): ReactNode;
81
- cellContentComponent?(row: T): ReactNode;
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
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
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: string): string;
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;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA,OAAO,wBAAwB,CAAC;AAChC,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAG9C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,wBAAgB,YAAY,WAI3B;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,QAI5C;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,UAM9C;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"}
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-test8",
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
- }