ydb-embedded-ui 8.12.0 → 8.13.0

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 (132) hide show
  1. package/dist/components/ErrorBoundary/ErrorBoundary.d.ts +3 -7
  2. package/dist/components/ErrorBoundary/ErrorBoundary.js +44 -7
  3. package/dist/components/ErrorBoundary/ErrorBoundary.js.map +1 -1
  4. package/dist/components/ErrorBoundary/ErrorBoundary.scss +26 -30
  5. package/dist/components/ErrorBoundary/i18n/en.json +7 -5
  6. package/dist/components/ErrorBoundary/i18n/index.d.ts +1 -1
  7. package/dist/components/ErrorBoundary/i18n/index.js +1 -2
  8. package/dist/components/ErrorBoundary/i18n/index.js.map +1 -1
  9. package/dist/components/ErrorBoundary/utils.d.ts +17 -0
  10. package/dist/components/ErrorBoundary/utils.js +43 -0
  11. package/dist/components/ErrorBoundary/utils.js.map +1 -0
  12. package/dist/components/Errors/ResponseError/ResponseError.js +3 -16
  13. package/dist/components/Errors/ResponseError/ResponseError.js.map +1 -1
  14. package/dist/components/FullNodeViewer/i18n/index.d.ts +1 -1
  15. package/dist/components/PDiskInfo/PDiskInfo.d.ts +0 -1
  16. package/dist/components/PDiskInfo/PDiskInfo.js +1 -4
  17. package/dist/components/PDiskInfo/PDiskInfo.js.map +1 -1
  18. package/dist/components/PDiskInfo/i18n/index.d.ts +1 -1
  19. package/dist/components/PDiskPopup/PDiskPopup.js +6 -2
  20. package/dist/components/PDiskPopup/PDiskPopup.js.map +1 -1
  21. package/dist/components/QueryExecutionStatus/QueryExecutionStatus.js +49 -17
  22. package/dist/components/QueryExecutionStatus/QueryExecutionStatus.js.map +1 -1
  23. package/dist/components/QueryExecutionStatus/QueryExecutionStatus.scss +0 -12
  24. package/dist/components/StorageGroupInfo/i18n/index.d.ts +1 -1
  25. package/dist/components/VDiskInfo/VDiskInfo.js +2 -1
  26. package/dist/components/VDiskInfo/VDiskInfo.js.map +1 -1
  27. package/dist/components/VDiskInfo/VDiskInfo.scss +0 -6
  28. package/dist/components/VDiskInfo/i18n/index.d.ts +1 -1
  29. package/dist/components/VDiskPopup/VDiskPopup.js +5 -2
  30. package/dist/components/VDiskPopup/VDiskPopup.js.map +1 -1
  31. package/dist/containers/App/App.scss +10 -0
  32. package/dist/containers/Tenant/Diagnostics/DiagnosticsPages.js +1 -0
  33. package/dist/containers/Tenant/Diagnostics/DiagnosticsPages.js.map +1 -1
  34. package/dist/containers/Tenant/Diagnostics/Overview/Overview.js +1 -0
  35. package/dist/containers/Tenant/Diagnostics/Overview/Overview.js.map +1 -1
  36. package/dist/containers/Tenant/ObjectSummary/ObjectSummary.js +1 -0
  37. package/dist/containers/Tenant/ObjectSummary/ObjectSummary.js.map +1 -1
  38. package/dist/containers/Tenant/Query/QueryEditor/QueryEditor.js +11 -19
  39. package/dist/containers/Tenant/Query/QueryEditor/QueryEditor.js.map +1 -1
  40. package/dist/containers/Tenant/Query/QueryEditor/helpers.d.ts +10 -0
  41. package/dist/containers/Tenant/Query/QueryEditor/helpers.js +15 -0
  42. package/dist/containers/Tenant/Query/QueryEditor/helpers.js.map +1 -1
  43. package/dist/containers/Tenant/Query/QueryEditorControls/EditorButton.d.ts +15 -0
  44. package/dist/containers/Tenant/Query/QueryEditorControls/EditorButton.js +26 -0
  45. package/dist/containers/Tenant/Query/QueryEditorControls/EditorButton.js.map +1 -0
  46. package/dist/containers/Tenant/Query/{CancelQueryButton/CancelQueryButton.scss → QueryEditorControls/EditorButton.scss} +7 -1
  47. package/dist/containers/Tenant/Query/QueryEditorControls/QueryEditorControls.d.ts +4 -1
  48. package/dist/containers/Tenant/Query/QueryEditorControls/QueryEditorControls.js +77 -18
  49. package/dist/containers/Tenant/Query/QueryEditorControls/QueryEditorControls.js.map +1 -1
  50. package/dist/containers/Tenant/Query/QueryEditorControls/QueryEditorControls.scss +3 -4
  51. package/dist/containers/Tenant/Query/QueryResult/QueryResultViewer.d.ts +1 -4
  52. package/dist/containers/Tenant/Query/QueryResult/QueryResultViewer.js +16 -10
  53. package/dist/containers/Tenant/Query/QueryResult/QueryResultViewer.js.map +1 -1
  54. package/dist/containers/Tenant/Query/QueryResult/QueryResultViewer.scss +1 -1
  55. package/dist/containers/Tenant/Query/QueryResult/components/QueryInfoDropdown/useQueryInfoMenuItems.js +2 -7
  56. package/dist/containers/Tenant/Query/QueryResult/components/QueryInfoDropdown/useQueryInfoMenuItems.js.map +1 -1
  57. package/dist/containers/Tenant/Query/QueryResult/components/QueryResultError/QueryResultError.js +2 -2
  58. package/dist/containers/Tenant/Query/QueryResult/components/QueryResultError/QueryResultError.js.map +1 -1
  59. package/dist/containers/Tenant/Query/QueryResult/components/QueryResultError/QueryResultError.scss +2 -1
  60. package/dist/containers/Tenant/Query/QueryResult/components/ResultSetsViewer/ResultSetsViewer.js +25 -20
  61. package/dist/containers/Tenant/Query/QueryResult/components/ResultSetsViewer/ResultSetsViewer.js.map +1 -1
  62. package/dist/containers/Tenant/Query/QueryResult/components/ResultSetsViewer/ResultSetsViewer.scss +7 -7
  63. package/dist/containers/Tenant/Query/QueryResult/i18n/en.json +7 -3
  64. package/dist/containers/Tenant/Query/QueryResult/i18n/index.d.ts +1 -1
  65. package/dist/containers/Tenant/Query/QuerySettingsBanner/QuerySettingsBanner.js +1 -1
  66. package/dist/containers/Tenant/Query/QuerySettingsBanner/QuerySettingsBanner.js.map +1 -1
  67. package/dist/containers/Tenant/Query/QuerySettingsBanner/QuerySettingsBanner.scss +3 -1
  68. package/dist/containers/Tenant/Query/QueryStoppedBanner/QueryStoppedBanner.d.ts +2 -0
  69. package/dist/containers/Tenant/Query/QueryStoppedBanner/QueryStoppedBanner.js +17 -0
  70. package/dist/containers/Tenant/Query/QueryStoppedBanner/QueryStoppedBanner.js.map +1 -0
  71. package/dist/containers/Tenant/Query/QueryStoppedBanner/QueryStoppedBanner.scss +5 -0
  72. package/dist/containers/Tenant/Query/i18n/en.json +5 -1
  73. package/dist/containers/Tenant/Query/i18n/index.d.ts +1 -1
  74. package/dist/containers/Tenant/utils/controls.js +1 -0
  75. package/dist/containers/Tenant/utils/controls.js.map +1 -1
  76. package/dist/containers/Tenant/utils/schema.js +7 -0
  77. package/dist/containers/Tenant/utils/schema.js.map +1 -1
  78. package/dist/containers/Tenant/utils/schemaActions.js +1 -0
  79. package/dist/containers/Tenant/utils/schemaActions.js.map +1 -1
  80. package/dist/containers/UserSettings/settings.js +1 -2
  81. package/dist/containers/UserSettings/settings.js.map +1 -1
  82. package/dist/services/api/base.d.ts +1 -0
  83. package/dist/services/api/base.js.map +1 -1
  84. package/dist/services/api/viewer.d.ts +2 -1
  85. package/dist/services/api/viewer.js +3 -2
  86. package/dist/services/api/viewer.js.map +1 -1
  87. package/dist/services/settings.d.ts +1 -0
  88. package/dist/services/settings.js +2 -1
  89. package/dist/services/settings.js.map +1 -1
  90. package/dist/store/configureStore.js +11 -7
  91. package/dist/store/configureStore.js.map +1 -1
  92. package/dist/store/reducers/query/query.d.ts +12 -1
  93. package/dist/store/reducers/query/query.js +39 -8
  94. package/dist/store/reducers/query/query.js.map +1 -1
  95. package/dist/store/reducers/query/streamingReducers.js +1 -22
  96. package/dist/store/reducers/query/streamingReducers.js.map +1 -1
  97. package/dist/store/reducers/query/types.d.ts +2 -0
  98. package/dist/styles/illustrations.scss +20 -0
  99. package/dist/styles/index.scss +1 -0
  100. package/dist/types/api/schema/schema.d.ts +2 -1
  101. package/dist/types/api/schema/schema.js +1 -0
  102. package/dist/types/api/schema/schema.js.map +1 -1
  103. package/dist/types/store/query.d.ts +0 -9
  104. package/dist/utils/constants.d.ts +1 -0
  105. package/dist/utils/constants.js +1 -0
  106. package/dist/utils/constants.js.map +1 -1
  107. package/dist/utils/createToast.d.ts +2 -1
  108. package/dist/utils/createToast.js +2 -2
  109. package/dist/utils/createToast.js.map +1 -1
  110. package/dist/utils/downloadFile.d.ts +2 -0
  111. package/dist/utils/downloadFile.js +17 -0
  112. package/dist/utils/downloadFile.js.map +1 -0
  113. package/dist/utils/prepareErrorMessage.d.ts +1 -0
  114. package/dist/utils/prepareErrorMessage.js +18 -0
  115. package/dist/utils/prepareErrorMessage.js.map +1 -0
  116. package/package.json +8 -4
  117. package/dist/components/ElapsedTime/ElapsedTime.d.ts +0 -5
  118. package/dist/components/ElapsedTime/ElapsedTime.js +0 -25
  119. package/dist/components/ElapsedTime/ElapsedTime.js.map +0 -1
  120. package/dist/components/ElapsedTime/ElapsedTime.scss +0 -3
  121. package/dist/components/ErrorBoundary/i18n/ru.json +0 -7
  122. package/dist/components/PDiskInfo/PDiskInfo.scss +0 -7
  123. package/dist/containers/Tenant/Query/CancelQueryButton/CancelQueryButton.d.ts +0 -8
  124. package/dist/containers/Tenant/Query/CancelQueryButton/CancelQueryButton.js +0 -11
  125. package/dist/containers/Tenant/Query/CancelQueryButton/CancelQueryButton.js.map +0 -1
  126. package/dist/containers/Tenant/Query/QueryDuration/QueryDuration.d.ts +0 -6
  127. package/dist/containers/Tenant/Query/QueryDuration/QueryDuration.js +0 -15
  128. package/dist/containers/Tenant/Query/QueryDuration/QueryDuration.js.map +0 -1
  129. package/dist/containers/Tenant/Query/QueryDuration/QueryDuration.scss +0 -27
  130. package/dist/containers/Tenant/Query/QueryResult/components/QueryInfoDropdown/utils.d.ts +0 -1
  131. package/dist/containers/Tenant/Query/QueryResult/components/QueryInfoDropdown/utils.js +0 -9
  132. package/dist/containers/Tenant/Query/QueryResult/components/QueryInfoDropdown/utils.js.map +0 -1
@@ -1,18 +1,14 @@
1
+ import React from 'react';
1
2
  import './ErrorBoundary.scss';
2
3
  export declare function ErrorBoundary({ children }: {
3
4
  children?: React.ReactNode;
4
5
  }): import("react/jsx-runtime").JSX.Element;
5
6
  interface ErrorBoundaryProps {
6
7
  children?: React.ReactNode;
7
- useRetry?: boolean;
8
- onReportProblem?: (error?: Error) => void;
9
8
  }
10
- export declare function ErrorBoundaryInner({ children, useRetry, onReportProblem, }: ErrorBoundaryProps): import("react/jsx-runtime").JSX.Element;
9
+ export declare function ErrorBoundaryInner({ children }: ErrorBoundaryProps): import("react/jsx-runtime").JSX.Element;
11
10
  interface ErrorBoundaryFallbackProps {
12
11
  error: Error;
13
- useRetry?: boolean;
14
- resetErrorBoundary?: () => void;
15
- onReportProblem?: (error?: Error) => void;
16
12
  }
17
- export declare function ErrorBoundaryFallback({ error, resetErrorBoundary, useRetry, onReportProblem, }: ErrorBoundaryFallbackProps): import("react/jsx-runtime").JSX.Element;
13
+ export declare function ErrorBoundaryFallback({ error }: ErrorBoundaryFallbackProps): import("react/jsx-runtime").JSX.Element;
18
14
  export {};
@@ -1,26 +1,63 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Button, Disclosure } from '@gravity-ui/uikit';
2
+ import React from 'react';
3
+ import { InternalError } from '@gravity-ui/illustrations';
4
+ import { DefinitionList, Flex, Text } from '@gravity-ui/uikit';
5
+ import QRCode from 'qrcode';
3
6
  import { ErrorBoundary as ErrorBoundaryBase } from 'react-error-boundary';
4
7
  import { cn } from '../../utils/cn';
5
8
  import { registerError } from '../../utils/registerError';
6
9
  import { useComponent } from '../ComponentsProvider/ComponentsProvider';
7
- import { Illustration } from '../Illustration';
8
10
  import i18n from './i18n';
11
+ import { collectDiagnosticsData, prepareErrorStack } from './utils';
9
12
  import './ErrorBoundary.scss';
10
13
  const b = cn('ydb-error-boundary');
11
14
  export function ErrorBoundary({ children }) {
12
15
  const ErrorBoundaryComponent = useComponent('ErrorBoundary');
13
16
  return _jsx(ErrorBoundaryComponent, { children: children });
14
17
  }
15
- export function ErrorBoundaryInner({ children, useRetry = true, onReportProblem, }) {
18
+ export function ErrorBoundaryInner({ children }) {
16
19
  return (_jsx(ErrorBoundaryBase, { onError: (error, info) => {
17
20
  var _a;
18
21
  registerError(error, (_a = info.componentStack) !== null && _a !== void 0 ? _a : undefined, 'error-boundary');
19
- }, fallbackRender: ({ error, resetErrorBoundary }) => {
20
- return (_jsx(ErrorBoundaryFallback, { error: error, useRetry: useRetry, resetErrorBoundary: resetErrorBoundary, onReportProblem: onReportProblem }));
22
+ }, fallbackRender: ({ error }) => {
23
+ return _jsx(ErrorBoundaryFallback, { error: error });
21
24
  }, children: children }));
22
25
  }
23
- export function ErrorBoundaryFallback({ error, resetErrorBoundary, useRetry, onReportProblem, }) {
24
- return (_jsxs("div", { className: b(), children: [_jsx(Illustration, { name: "error", className: b('illustration') }), _jsxs("div", { className: b('content'), children: [_jsx("h2", { className: b('error-title'), children: i18n('error-title') }), _jsx("div", { className: b('error-description'), children: i18n('error-description') }), _jsx(Disclosure, { summary: i18n('show-details'), className: b('show-details'), size: "m", children: _jsx("pre", { className: b('error-details'), children: error.stack }) }), _jsxs("div", { className: b('actions'), children: [useRetry && (_jsx(Button, { view: "outlined", onClick: resetErrorBoundary, children: i18n('button-reset') })), onReportProblem && (_jsx(Button, { view: "outlined", onClick: () => onReportProblem(error), children: i18n('report-problem') }))] })] })] }));
26
+ export function ErrorBoundaryFallback({ error }) {
27
+ const [diagnosticsData, setDiagnosticsData] = React.useState();
28
+ React.useEffect(() => {
29
+ collectDiagnosticsData(error).then((data) => {
30
+ setDiagnosticsData(data);
31
+ });
32
+ }, [error]);
33
+ return (_jsxs(Flex, { direction: "column", gap: 4, className: b(null), children: [_jsxs(Flex, { direction: "row", alignItems: "center", gap: 10, children: [_jsx(InternalError, { width: 230, height: 230 }), _jsxs(Flex, { direction: "column", gap: 5, children: [_jsxs(Flex, { direction: "column", gap: 2, children: [_jsx(Text, { variant: "subheader-3", children: i18n('error-title') }), _jsx(Text, { variant: "body-1", color: "complementary", children: i18n('error-description') })] }), _jsx(DiagnosticsDataList, { data: diagnosticsData })] })] }), _jsxs(Flex, { direction: "row", alignItems: "start", gap: 8, children: [_jsx(ErrorStack, { stack: error.stack }), _jsxs(Flex, { direction: "column", gap: 3, children: [_jsx(Text, { variant: "body-1", color: "complementary", className: b('qr-help-text'), children: i18n('send-qr-message') }), _jsx(DiagnosticsDataQR, { data: diagnosticsData })] })] })] }));
34
+ }
35
+ function DiagnosticsDataList({ data }) {
36
+ return (_jsxs(DefinitionList, { nameMaxWidth: 200, children: [(data === null || data === void 0 ? void 0 : data.uiVersion) && typeof data.uiVersion === 'string' && (_jsx(DefinitionList.Item, { name: i18n('ui-version'), children: data.uiVersion })), (data === null || data === void 0 ? void 0 : data.backendVersion) && typeof data.backendVersion === 'string' && (_jsx(DefinitionList.Item, { name: i18n('backend-version'), children: data.backendVersion })), _jsx(DefinitionList.Item, { name: i18n('error'), children: data === null || data === void 0 ? void 0 : data.error.message })] }));
37
+ }
38
+ function ErrorStack({ stack }) {
39
+ if (!stack) {
40
+ return null;
41
+ }
42
+ const stackToDisplay = prepareErrorStack(stack, {
43
+ trim: false,
44
+ maxLines: undefined,
45
+ });
46
+ return (_jsxs(Flex, { direction: "column", className: b('error-stack-wrapper'), children: [_jsx(Text, { variant: "body-1", className: b('error-stack-title'), children: i18n('stack-title') }), _jsx(Text, { variant: "code-1", className: b('error-stack-code'), children: stackToDisplay })] }));
47
+ }
48
+ function DiagnosticsDataQR({ data }) {
49
+ const canvasRef = React.useRef(null);
50
+ React.useEffect(() => {
51
+ if (data) {
52
+ QRCode.toCanvas(canvasRef.current, JSON.stringify(data), {
53
+ errorCorrectionLevel: 'L',
54
+ width: 400,
55
+ });
56
+ }
57
+ }, [data]);
58
+ if (!data) {
59
+ return null;
60
+ }
61
+ return _jsx("canvas", { ref: canvasRef });
25
62
  }
26
63
  //# sourceMappingURL=ErrorBoundary.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorBoundary.js","sourceRoot":"","sources":["../../../src/components/ErrorBoundary/ErrorBoundary.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,MAAM,EAAE,UAAU,EAAC,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAC,aAAa,IAAI,iBAAiB,EAAC,MAAM,sBAAsB,CAAC;AAExE,OAAO,EAAC,EAAE,EAAC,MAAM,gBAAgB,CAAC;AAClC,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAC,YAAY,EAAC,MAAM,0CAA0C,CAAC;AACtE,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAE7C,OAAO,IAAI,MAAM,QAAQ,CAAC;AAE1B,OAAO,sBAAsB,CAAC;AAE9B,MAAM,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC,CAAC;AAEnC,MAAM,UAAU,aAAa,CAAC,EAAC,QAAQ,EAA+B;IAClE,MAAM,sBAAsB,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC;IAC7D,OAAO,KAAC,sBAAsB,cAAE,QAAQ,GAA0B,CAAC;AACvE,CAAC;AAQD,MAAM,UAAU,kBAAkB,CAAC,EAC/B,QAAQ,EACR,QAAQ,GAAG,IAAI,EACf,eAAe,GACE;IACjB,OAAO,CACH,KAAC,iBAAiB,IACd,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;;YACrB,aAAa,CAAC,KAAK,EAAE,MAAA,IAAI,CAAC,cAAc,mCAAI,SAAS,EAAE,gBAAgB,CAAC,CAAC;QAC7E,CAAC,EACD,cAAc,EAAE,CAAC,EAAC,KAAK,EAAE,kBAAkB,EAAC,EAAE,EAAE;YAC5C,OAAO,CACH,KAAC,qBAAqB,IAClB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,kBAAkB,EAAE,kBAAkB,EACtC,eAAe,EAAE,eAAe,GAClC,CACL,CAAC;QACN,CAAC,YAEA,QAAQ,GACO,CACvB,CAAC;AACN,CAAC;AAQD,MAAM,UAAU,qBAAqB,CAAC,EAClC,KAAK,EACL,kBAAkB,EAClB,QAAQ,EACR,eAAe,GACU;IACzB,OAAO,CACH,eAAK,SAAS,EAAE,CAAC,EAAE,aACf,KAAC,YAAY,IAAC,IAAI,EAAC,OAAO,EAAC,SAAS,EAAE,CAAC,CAAC,cAAc,CAAC,GAAI,EAC3D,eAAK,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,aACxB,aAAI,SAAS,EAAE,CAAC,CAAC,aAAa,CAAC,YAAG,IAAI,CAAC,aAAa,CAAC,GAAM,EAC3D,cAAK,SAAS,EAAE,CAAC,CAAC,mBAAmB,CAAC,YAAG,IAAI,CAAC,mBAAmB,CAAC,GAAO,EACzE,KAAC,UAAU,IAAC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,cAAc,CAAC,EAAE,IAAI,EAAC,GAAG,YAC7E,cAAK,SAAS,EAAE,CAAC,CAAC,eAAe,CAAC,YAAG,KAAK,CAAC,KAAK,GAAO,GAC9C,EACb,eAAK,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,aACvB,QAAQ,IAAI,CACT,KAAC,MAAM,IAAC,IAAI,EAAC,UAAU,EAAC,OAAO,EAAE,kBAAkB,YAC9C,IAAI,CAAC,cAAc,CAAC,GAChB,CACZ,EACA,eAAe,IAAI,CAChB,KAAC,MAAM,IAAC,IAAI,EAAC,UAAU,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,YACxD,IAAI,CAAC,gBAAgB,CAAC,GAClB,CACZ,IACC,IACJ,IACJ,CACT,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"ErrorBoundary.js","sourceRoot":"","sources":["../../../src/components/ErrorBoundary/ErrorBoundary.tsx"],"names":[],"mappings":"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"}
@@ -1,42 +1,38 @@
1
1
  @use '../../styles/mixins.scss';
2
2
 
3
3
  .ydb-error-boundary {
4
- display: flex;
5
- flex-direction: row;
6
- align-items: flex-start;
4
+ --g-definition-list-item-gap: var(--g-spacing-1);
7
5
 
8
- padding: 20px;
6
+ padding: var(--g-spacing-8);
9
7
 
10
- @include mixins.body-2-typography();
8
+ &__error-stack {
9
+ &-wrapper {
10
+ overflow: auto;
11
11
 
12
- &__illustration {
13
- width: 230px;
14
- height: 230px;
15
- margin-right: 20px;
16
- }
17
- &__error-title {
18
- margin-top: 44px;
19
- @include mixins.lead-typography();
20
- }
21
- &__error-description {
22
- margin-top: 12px;
23
- }
24
- &__show-details {
25
- margin-top: 8px;
26
- }
27
- &__error-details {
28
- padding: 13px 18px;
12
+ width: 800px;
13
+ height: 430px;
14
+
15
+ border-radius: var(--g-border-radius-xs);
16
+ background-color: var(--code-background-color);
17
+ scrollbar-color: var(--g-color-scroll-handle) transparent;
18
+ }
19
+
20
+ &-title {
21
+ position: sticky;
22
+ left: 0;
23
+
24
+ padding: var(--g-spacing-2) var(--g-spacing-3);
29
25
 
30
- white-space: pre-wrap;
26
+ border-bottom: 1px solid var(--g-color-line-generic);
27
+ }
28
+ &-code {
29
+ padding: var(--g-spacing-3) var(--g-spacing-3) var(--g-spacing-2);
31
30
 
32
- border: 1px solid var(--g-color-line-generic);
33
- background-color: var(--g-color-base-generic-ultralight);
31
+ white-space: pre-wrap;
32
+ }
34
33
  }
35
- &__actions {
36
- display: flex;
37
- flex-direction: row;
38
- gap: 10px;
39
34
 
40
- margin-top: 20px;
35
+ &__qr-help-text {
36
+ text-align: right;
41
37
  }
42
38
  }
@@ -1,7 +1,9 @@
1
1
  {
2
- "error-title": "Something went wrong",
3
- "error-description": "We have something broken, but don't worry, it won't last long",
4
- "show-details": "Show details",
5
- "report-problem": "Report a problem",
6
- "button-reset": "Try again"
2
+ "error-title": "Oops! Something went wrong...",
3
+ "error-description": "Something seems to be broken. Please contact support for help.",
4
+ "send-qr-message": "Send QR code to the support",
5
+ "stack-title": "Trace",
6
+ "ui-version": "UI version",
7
+ "backend-version": "Backend version",
8
+ "error": "Error"
7
9
  }
@@ -1,2 +1,2 @@
1
- declare const _default: (key: "error-title" | "error-description" | "show-details" | "report-problem" | "button-reset", params?: import("@gravity-ui/i18n").Params) => string;
1
+ declare const _default: (key: "error" | "error-title" | "error-description" | "send-qr-message" | "stack-title" | "ui-version" | "backend-version", params?: import("@gravity-ui/i18n").Params) => string;
2
2
  export default _default;
@@ -1,6 +1,5 @@
1
1
  import { registerKeysets } from '../../../utils/i18n';
2
2
  import en from './en.json';
3
- import ru from './ru.json';
4
3
  const COMPONENT = 'ydb-error-boundary';
5
- export default registerKeysets(COMPONENT, { ru, en });
4
+ export default registerKeysets(COMPONENT, { en });
6
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/ErrorBoundary/i18n/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,MAAM,WAAW,CAAC;AAC3B,OAAO,EAAE,MAAM,WAAW,CAAC;AAE3B,MAAM,SAAS,GAAG,oBAAoB,CAAC;AAEvC,eAAe,eAAe,CAAC,SAAS,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/ErrorBoundary/i18n/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,MAAM,WAAW,CAAC;AAE3B,MAAM,SAAS,GAAG,oBAAoB,CAAC;AAEvC,eAAe,eAAe,CAAC,SAAS,EAAE,EAAC,EAAE,EAAC,CAAC,CAAC"}
@@ -0,0 +1,17 @@
1
+ export declare function collectDiagnosticsData(error: Error): Promise<{
2
+ location: string;
3
+ userAgent: string;
4
+ error: {
5
+ message: string;
6
+ stack: string | undefined;
7
+ };
8
+ uiVersion: string | undefined;
9
+ backendVersion: string | {
10
+ error: string;
11
+ } | undefined;
12
+ }>;
13
+ export type DiagnosticsData = Awaited<ReturnType<typeof collectDiagnosticsData>>;
14
+ export declare function prepareErrorStack(stack?: string, { trim, maxLines }?: {
15
+ trim?: boolean;
16
+ maxLines?: number;
17
+ }): string | undefined;
@@ -0,0 +1,43 @@
1
+ import { prepareErrorMessage } from '../../utils/prepareErrorMessage';
2
+ export async function collectDiagnosticsData(error) {
3
+ return await getBackendVersion().then((backendVersion) => {
4
+ return {
5
+ location: window.location.href,
6
+ userAgent: navigator.userAgent,
7
+ error: {
8
+ message: prepareErrorMessage(error),
9
+ stack: prepareErrorStack(error.stack, { trim: true, maxLines: 10 }),
10
+ },
11
+ uiVersion: process.env.UI_VERSION,
12
+ backendVersion,
13
+ };
14
+ });
15
+ }
16
+ async function getBackendVersion() {
17
+ var _a, _b;
18
+ try {
19
+ // node_id=. returns data about node that fullfills request
20
+ // normally this request should be fast (200-300ms with good connection)
21
+ // timeout=1000 in order not to wait too much in case everything is broken
22
+ const data = await window.api.viewer.getNodeInfo('.', { timeout: 1000 });
23
+ return (_b = (_a = data === null || data === void 0 ? void 0 : data.SystemStateInfo) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.Version;
24
+ }
25
+ catch (error) {
26
+ return { error: prepareErrorMessage(error) };
27
+ }
28
+ }
29
+ export function prepareErrorStack(stack, { trim = true, maxLines } = {}) {
30
+ return (stack === null || stack === void 0 ? void 0 : stack.split('\n').map((line, index) => {
31
+ // Do not prepare line with error message
32
+ if (index === 0) {
33
+ return line;
34
+ }
35
+ // Remove repeating origin from stack trace location
36
+ const preparedLine = line.replace(`(${window.location.origin}/`, '(/');
37
+ if (trim) {
38
+ return preparedLine.trim();
39
+ }
40
+ return preparedLine;
41
+ }).slice(0, maxLines ? maxLines + 1 : undefined).join('\n'));
42
+ }
43
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/components/ErrorBoundary/utils.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,iCAAiC,CAAC;AAEpE,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,KAAY;IACrD,OAAO,MAAM,iBAAiB,EAAE,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE;QACrD,OAAO;YACH,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;YAC9B,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,KAAK,EAAE;gBACH,OAAO,EAAE,mBAAmB,CAAC,KAAK,CAAC;gBACnC,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,EAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAC,CAAC;aACpE;YACD,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU;YACjC,cAAc;SACjB,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC;AAID,KAAK,UAAU,iBAAiB;;IAC5B,IAAI,CAAC;QACD,2DAA2D;QAC3D,wEAAwE;QACxE,0EAA0E;QAC1E,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC;QACvE,OAAO,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,eAAe,0CAAG,CAAC,CAAC,0CAAE,OAAO,CAAC;IAC/C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,EAAC,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC,EAAC,CAAC;IAC/C,CAAC;AACL,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC7B,KAAc,EACd,EAAC,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAyC,EAAE;IAEjE,OAAO,CACH,KAAK,aAAL,KAAK,uBAAL,KAAK,CACC,KAAK,CAAC,IAAI,EACX,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACjB,yCAAyC;QACzC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YACd,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,oDAAoD;QACpD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,EAAE,IAAI,CAAC,CAAC;QAEvE,IAAI,IAAI,EAAE,CAAC;YACP,OAAO,YAAY,CAAC,IAAI,EAAE,CAAC;QAC/B,CAAC;QAED,OAAO,YAAY,CAAC;IACxB,CAAC,EAEA,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,EAC5C,IAAI,CAAC,IAAI,CAAC,CAClB,CAAC;AACN,CAAC"}
@@ -1,21 +1,8 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { prepareErrorMessage } from '../../../utils/prepareErrorMessage';
2
3
  import i18n from '../i18n';
3
4
  export const ResponseError = ({ error, className, defaultMessage = i18n('responseError.defaultMessage'), }) => {
4
- let statusText = '';
5
- if (error && typeof error === 'string') {
6
- statusText = error;
7
- }
8
- if (error && typeof error === 'object') {
9
- if ('data' in error && typeof error.data === 'string') {
10
- statusText = error.data;
11
- }
12
- else if ('statusText' in error && typeof error.statusText === 'string') {
13
- statusText = error.statusText;
14
- }
15
- else if ('message' in error && typeof error.message === 'string') {
16
- statusText = error.message;
17
- }
18
- }
19
- return _jsx("div", { className: `error ${className}`, children: statusText || defaultMessage });
5
+ const message = prepareErrorMessage(error) || defaultMessage;
6
+ return _jsx("div", { className: `error ${className}`, children: message });
20
7
  };
21
8
  //# sourceMappingURL=ResponseError.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ResponseError.js","sourceRoot":"","sources":["../../../../src/components/Errors/ResponseError/ResponseError.tsx"],"names":[],"mappings":";AAAA,OAAO,IAAI,MAAM,SAAS,CAAC;AAQ3B,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAC1B,KAAK,EACL,SAAS,EACT,cAAc,GAAG,IAAI,CAAC,8BAA8B,CAAC,GACpC,EAAE,EAAE;IACrB,IAAI,UAAU,GAAG,EAAE,CAAC;IAEpB,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACrC,UAAU,GAAG,KAAK,CAAC;IACvB,CAAC;IACD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACrC,IAAI,MAAM,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACpD,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC;QAC5B,CAAC;aAAM,IAAI,YAAY,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YACvE,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QAClC,CAAC;aAAM,IAAI,SAAS,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACjE,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC;QAC/B,CAAC;IACL,CAAC;IACD,OAAO,cAAK,SAAS,EAAE,SAAS,SAAS,EAAE,YAAG,UAAU,IAAI,cAAc,GAAO,CAAC;AACtF,CAAC,CAAC"}
1
+ {"version":3,"file":"ResponseError.js","sourceRoot":"","sources":["../../../../src/components/Errors/ResponseError/ResponseError.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,oCAAoC,CAAC;AACvE,OAAO,IAAI,MAAM,SAAS,CAAC;AAQ3B,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAC1B,KAAK,EACL,SAAS,EACT,cAAc,GAAG,IAAI,CAAC,8BAA8B,CAAC,GACpC,EAAE,EAAE;IACrB,MAAM,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC;IAE7D,OAAO,cAAK,SAAS,EAAE,SAAS,SAAS,EAAE,YAAG,OAAO,GAAO,CAAC;AACjE,CAAC,CAAC"}
@@ -1,2 +1,2 @@
1
- declare const _default: (key: "version" | "database" | "uptime" | "links" | "dc" | "no-data" | "rack" | "la-interval-1m" | "la-interval-5m" | "la-interval-15m" | "developer-ui" | "title.common-info" | "title.endpoints" | "title.roles" | "title.pools" | "title.load-average", params?: import("@gravity-ui/i18n").Params) => string;
1
+ declare const _default: (key: "version" | "database" | "uptime" | "links" | "dc" | "no-data" | "rack" | "developer-ui" | "la-interval-1m" | "la-interval-5m" | "la-interval-15m" | "title.common-info" | "title.endpoints" | "title.roles" | "title.pools" | "title.load-average", params?: import("@gravity-ui/i18n").Params) => string;
2
2
  export default _default;
@@ -1,5 +1,4 @@
1
1
  import type { PreparedPDisk } from '../../utils/disks/types';
2
- import './PDiskInfo.scss';
3
2
  interface GetPDiskInfoOptions<T extends PreparedPDisk> {
4
3
  pDisk?: T;
5
4
  nodeId?: number | string | null;
@@ -3,7 +3,6 @@ import { Flex } from '@gravity-ui/uikit';
3
3
  import { getPDiskPagePath } from '../../routes';
4
4
  import { valueIsDefined } from '../../utils';
5
5
  import { formatBytes } from '../../utils/bytesParsers';
6
- import { cn } from '../../utils/cn';
7
6
  import { formatStorageValuesToGb } from '../../utils/dataFormatters/dataFormatters';
8
7
  import { createPDiskDeveloperUILink } from '../../utils/developerUI/developerUI';
9
8
  import { useIsUserAllowedToMakeChanges } from '../../utils/hooks/useIsUserAllowedToMakeChanges';
@@ -12,8 +11,6 @@ import { LinkWithIcon } from '../LinkWithIcon/LinkWithIcon';
12
11
  import { ProgressViewer } from '../ProgressViewer/ProgressViewer';
13
12
  import { StatusIcon } from '../StatusIcon/StatusIcon';
14
13
  import { pDiskInfoKeyset } from './i18n';
15
- import './PDiskInfo.scss';
16
- const b = cn('ydb-pdisk-info');
17
14
  // eslint-disable-next-line complexity
18
15
  function getPDiskInfo({ pDisk, nodeId, withPDiskPageLink, isUserAllowedToMakeChanges, }) {
19
16
  const { PDiskId, Path, Guid, Category, Type, Device, Realtime, State, SerialNumber, TotalSize, AllocatedSize, StatusV2, NumActiveSlots, ExpectedSlotCount, LogUsedSize, LogTotalSize, SystemSize, SharedWithOs, } = pDisk || {};
@@ -94,7 +91,7 @@ function getPDiskInfo({ pDisk, nodeId, withPDiskPageLink, isUserAllowedToMakeCha
94
91
  });
95
92
  additionalInfo.push({
96
93
  label: pDiskInfoKeyset('links'),
97
- value: (_jsxs("span", { className: b('links'), children: [withPDiskPageLink && (_jsx(LinkWithIcon, { title: pDiskInfoKeyset('pdisk-page'), url: pDiskPagePath, external: false })), isUserAllowedToMakeChanges && (_jsx(LinkWithIcon, { title: pDiskInfoKeyset('developer-ui'), url: pDiskInternalViewerPath }))] })),
94
+ value: (_jsxs(Flex, { wrap: "wrap", gap: 2, children: [withPDiskPageLink && (_jsx(LinkWithIcon, { title: pDiskInfoKeyset('pdisk-page'), url: pDiskPagePath, external: false })), isUserAllowedToMakeChanges && (_jsx(LinkWithIcon, { title: pDiskInfoKeyset('developer-ui'), url: pDiskInternalViewerPath }))] })),
98
95
  });
99
96
  }
100
97
  return [generalInfo, statusInfo, spaceInfo, additionalInfo];
@@ -1 +1 @@
1
- {"version":3,"file":"PDiskInfo.js","sourceRoot":"","sources":["../../../src/components/PDiskInfo/PDiskInfo.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PDiskInfo.js","sourceRoot":"","sources":["../../../src/components/PDiskInfo/PDiskInfo.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- export declare const pDiskInfoKeyset: (key: "path" | "type" | "space" | "links" | "yes" | "state" | "developer-ui" | "guid" | "serial-number" | "shared-with-os" | "drive-status" | "device" | "realtime" | "slots" | "log-size" | "system-size" | "pdisk-page", params?: import("@gravity-ui/i18n").Params) => string;
1
+ export declare const pDiskInfoKeyset: (key: "path" | "type" | "space" | "links" | "yes" | "state" | "guid" | "serial-number" | "shared-with-os" | "drive-status" | "device" | "realtime" | "slots" | "log-size" | "system-size" | "developer-ui" | "pdisk-page", params?: import("@gravity-ui/i18n").Params) => string;
@@ -1,5 +1,7 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import React from 'react';
3
+ import { Flex } from '@gravity-ui/uikit';
4
+ import { getPDiskPagePath } from '../../routes';
3
5
  import { selectNodesMap } from '../../store/reducers/nodesList';
4
6
  import { EFlag } from '../../types/api/enums';
5
7
  import { valueIsDefined } from '../../utils';
@@ -10,6 +12,7 @@ import { useIsUserAllowedToMakeChanges } from '../../utils/hooks/useIsUserAllowe
10
12
  import { bytesToGB, isNumeric } from '../../utils/utils';
11
13
  import { InfoViewer } from '../InfoViewer';
12
14
  import { LinkWithIcon } from '../LinkWithIcon/LinkWithIcon';
15
+ import { pDiskInfoKeyset } from '../PDiskInfo/i18n';
13
16
  const errorColors = [EFlag.Orange, EFlag.Red, EFlag.Yellow];
14
17
  export const preparePDiskData = (data, nodeData, withDeveloperUILink) => {
15
18
  const { AvailableSize, TotalSize, State, PDiskId, NodeId, StringifiedId, Path, Realtime, Type, Device, } = data;
@@ -50,9 +53,10 @@ export const preparePDiskData = (data, nodeData, withDeveloperUILink) => {
50
53
  nodeId: NodeId,
51
54
  pDiskId: PDiskId,
52
55
  });
56
+ const pDiskPagePath = getPDiskPagePath(PDiskId, NodeId);
53
57
  pdiskData.push({
54
58
  label: 'Links',
55
- value: _jsx(LinkWithIcon, { title: 'Developer UI', url: pDiskInternalViewerPath }),
59
+ value: (_jsxs(Flex, { gap: 2, wrap: "wrap", children: [_jsx(LinkWithIcon, { title: pDiskInfoKeyset('pdisk-page'), url: pDiskPagePath, external: false }), _jsx(LinkWithIcon, { title: pDiskInfoKeyset('developer-ui'), url: pDiskInternalViewerPath })] })),
56
60
  });
57
61
  }
58
62
  return pdiskData;
@@ -1 +1 @@
1
- {"version":3,"file":"PDiskPopup.js","sourceRoot":"","sources":["../../../src/components/PDiskPopup/PDiskPopup.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PDiskPopup.js","sourceRoot":"","sources":["../../../src/components/PDiskPopup/PDiskPopup.tsx"],"names":[],"mappings":"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"}
@@ -1,41 +1,73 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { CircleCheck, CircleInfo, CircleQuestionFill, CircleStop, CircleXmark, } from '@gravity-ui/icons';
3
- import { Icon, Spin, Tooltip } from '@gravity-ui/uikit';
4
- import i18n from '../../containers/Tenant/Query/i18n';
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ import { duration } from '@gravity-ui/date-utils';
4
+ import { CircleCheckFill, CircleQuestionFill, CircleStop, CircleXmark } from '@gravity-ui/icons';
5
+ import { Icon, Label, Spin, Text } from '@gravity-ui/uikit';
5
6
  import { isQueryCancelledError } from '../../containers/Tenant/Query/utils/isQueryCancelledError';
7
+ import { selectQueryDuration } from '../../store/reducers/query/query';
6
8
  import { cn } from '../../utils/cn';
7
- import { useChangedQuerySettings } from '../../utils/hooks/useChangedQuerySettings';
9
+ import { HOUR_IN_SECONDS, SECOND_IN_MS } from '../../utils/constants';
10
+ import { useTypedSelector } from '../../utils/hooks';
8
11
  import { isAxiosError } from '../../utils/response';
9
- import QuerySettingsDescription from '../QuerySettingsDescription/QuerySettingsDescription';
10
12
  import './QueryExecutionStatus.scss';
11
13
  const b = cn('kv-query-execution-status');
12
- const QuerySettingsIndicator = () => {
13
- const { isIndicatorShown, changedLastExecutionSettingsDescriptions } = useChangedQuerySettings();
14
- if (!isIndicatorShown) {
15
- return null;
16
- }
17
- return (_jsx(Tooltip, { openDelay: 0, content: _jsx(QuerySettingsDescription, { prefix: i18n('banner.query-settings.message'), querySettings: changedLastExecutionSettingsDescriptions }), children: _jsx(Icon, { data: CircleInfo, className: b('query-settings-icon') }) }));
18
- };
19
14
  export const QueryExecutionStatus = ({ className, error, loading }) => {
20
15
  let icon;
21
16
  let label;
17
+ let theme;
18
+ let textColor;
19
+ const { startTime, endTime } = useTypedSelector(selectQueryDuration);
20
+ const [queryDuration, setQueryDuration] = React.useState(startTime ? (endTime || Date.now()) - startTime : 0);
21
+ const isCancelled = isQueryCancelledError(error);
22
+ const setDuration = React.useCallback(() => {
23
+ if (startTime) {
24
+ const actualEndTime = endTime || Date.now();
25
+ setQueryDuration(actualEndTime - startTime);
26
+ }
27
+ }, [endTime, startTime]);
28
+ React.useEffect(() => {
29
+ let timerId;
30
+ setDuration();
31
+ if (loading) {
32
+ timerId = setInterval(setDuration, SECOND_IN_MS);
33
+ }
34
+ else {
35
+ clearInterval(timerId);
36
+ }
37
+ return () => {
38
+ clearInterval(timerId);
39
+ };
40
+ }, [loading, setDuration]);
41
+ const formattedQueryDuration = React.useMemo(() => {
42
+ return queryDuration > HOUR_IN_SECONDS * SECOND_IN_MS
43
+ ? duration(queryDuration).format('hh:mm:ss')
44
+ : duration(queryDuration).format('mm:ss');
45
+ }, [queryDuration]);
22
46
  if (loading) {
47
+ theme = 'info';
48
+ textColor = 'info-heavy';
23
49
  icon = _jsx(Spin, { size: "xs" });
24
50
  label = 'Running';
25
51
  }
26
52
  else if (isAxiosError(error) && error.code === 'ECONNABORTED') {
53
+ theme = 'danger';
54
+ textColor = 'danger-heavy';
27
55
  icon = _jsx(Icon, { data: CircleQuestionFill });
28
56
  label = 'Connection aborted';
29
57
  }
30
- else if (isQueryCancelledError(error)) {
31
- icon = _jsx(Icon, { data: CircleStop });
58
+ else if (isCancelled) {
59
+ theme = 'warning';
60
+ textColor = 'warning-heavy';
61
+ icon = _jsx(Icon, { data: CircleStop, className: b('result-status-icon', { error: true }) });
32
62
  label = 'Stopped';
33
63
  }
34
64
  else {
35
65
  const hasError = Boolean(error);
36
- icon = (_jsx(Icon, { data: hasError ? CircleXmark : CircleCheck, className: b('result-status-icon', { error: hasError }) }));
66
+ theme = hasError ? 'danger' : 'success';
67
+ textColor = hasError ? 'danger-heavy' : 'positive-heavy';
68
+ icon = (_jsx(Icon, { data: hasError ? CircleXmark : CircleCheckFill, className: b('result-status-icon', { error: hasError }) }));
37
69
  label = hasError ? 'Failed' : 'Completed';
38
70
  }
39
- return (_jsxs("div", { className: b(null, className), children: [icon, label, isQueryCancelledError(error) || loading ? null : _jsx(QuerySettingsIndicator, {})] }));
71
+ return (_jsx(Label, { theme: theme, size: "m", className: b(null, className), icon: icon, value: formattedQueryDuration, children: _jsx(Text, { color: textColor, children: label }) }));
40
72
  };
41
73
  //# sourceMappingURL=QueryExecutionStatus.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"QueryExecutionStatus.js","sourceRoot":"","sources":["../../../src/components/QueryExecutionStatus/QueryExecutionStatus.tsx"],"names":[],"mappings":";AAEA,OAAO,EACH,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,UAAU,EACV,WAAW,GACd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAC,MAAM,mBAAmB,CAAC;AAEtD,OAAO,IAAI,MAAM,oCAAoC,CAAC;AACtD,OAAO,EAAC,qBAAqB,EAAC,MAAM,2DAA2D,CAAC;AAChG,OAAO,EAAC,EAAE,EAAC,MAAM,gBAAgB,CAAC;AAClC,OAAO,EAAC,uBAAuB,EAAC,MAAM,2CAA2C,CAAC;AAClF,OAAO,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAClD,OAAO,wBAAwB,MAAM,sDAAsD,CAAC;AAE5F,OAAO,6BAA6B,CAAC;AAErC,MAAM,CAAC,GAAG,EAAE,CAAC,2BAA2B,CAAC,CAAC;AAQ1C,MAAM,sBAAsB,GAAG,GAAG,EAAE;IAChC,MAAM,EAAC,gBAAgB,EAAE,wCAAwC,EAAC,GAAG,uBAAuB,EAAE,CAAC;IAE/F,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,CACH,KAAC,OAAO,IACJ,SAAS,EAAE,CAAC,EACZ,OAAO,EACH,KAAC,wBAAwB,IACrB,MAAM,EAAE,IAAI,CAAC,+BAA+B,CAAC,EAC7C,aAAa,EAAE,wCAAwC,GACzD,YAGN,KAAC,IAAI,IAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,qBAAqB,CAAC,GAAI,GACzD,CACb,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,EAAC,SAAS,EAAE,KAAK,EAAE,OAAO,EAA4B,EAAE,EAAE;IAC3F,IAAI,IAAqB,CAAC;IAC1B,IAAI,KAAa,CAAC;IAElB,IAAI,OAAO,EAAE,CAAC;QACV,IAAI,GAAG,KAAC,IAAI,IAAC,IAAI,EAAC,IAAI,GAAG,CAAC;QAC1B,KAAK,GAAG,SAAS,CAAC;IACtB,CAAC;SAAM,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QAC9D,IAAI,GAAG,KAAC,IAAI,IAAC,IAAI,EAAE,kBAAkB,GAAI,CAAC;QAC1C,KAAK,GAAG,oBAAoB,CAAC;IACjC,CAAC;SAAM,IAAI,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;QACtC,IAAI,GAAG,KAAC,IAAI,IAAC,IAAI,EAAE,UAAU,GAAI,CAAC;QAClC,KAAK,GAAG,SAAS,CAAC;IACtB,CAAC;SAAM,CAAC;QACJ,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,GAAG,CACH,KAAC,IAAI,IACD,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,EAC1C,SAAS,EAAE,CAAC,CAAC,oBAAoB,EAAE,EAAC,KAAK,EAAE,QAAQ,EAAC,CAAC,GACvD,CACL,CAAC;QACF,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC;IAC9C,CAAC;IAED,OAAO,CACH,eAAK,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,aAC7B,IAAI,EACJ,KAAK,EACL,qBAAqB,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAC,sBAAsB,KAAG,IAC1E,CACT,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"file":"QueryExecutionStatus.js","sourceRoot":"","sources":["../../../src/components/QueryExecutionStatus/QueryExecutionStatus.tsx"],"names":[],"mappings":"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"}
@@ -2,16 +2,4 @@
2
2
  display: flex;
3
3
  align-items: center;
4
4
  gap: 4px;
5
-
6
- color: var(--g-color-text-complementary);
7
- &__result-status-icon {
8
- color: var(--g-color-text-positive);
9
- &_error {
10
- color: var(--g-color-text-danger);
11
- }
12
- }
13
-
14
- &__query-settings-icon {
15
- color: var(--g-color-text-hint);
16
- }
17
5
  }
@@ -1 +1 @@
1
- export declare const storageGroupInfoKeyset: (key: "yes" | "no" | "state" | "encryption" | "missing-disks" | "usage" | "latency" | "allocation-units" | "media-type" | "available" | "read-throughput" | "write-throughput" | "overall" | "disk-space" | "erasure-species" | "used-space" | "group-generation" | "latency-put-tablet-log" | "latency-put-user-data" | "latency-get-fast", params?: import("@gravity-ui/i18n").Params) => string;
1
+ export declare const storageGroupInfoKeyset: (key: "yes" | "no" | "state" | "encryption" | "missing-disks" | "usage" | "latency" | "allocation-units" | "read-throughput" | "write-throughput" | "media-type" | "available" | "overall" | "disk-space" | "erasure-species" | "used-space" | "group-generation" | "latency-put-tablet-log" | "latency-put-user-data" | "latency-get-fast", params?: import("@gravity-ui/i18n").Params) => string;
@@ -1,4 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Flex } from '@gravity-ui/uikit';
2
3
  import { getVDiskPagePath } from '../../routes';
3
4
  import { valueIsDefined } from '../../utils';
4
5
  import { cn } from '../../utils/cn';
@@ -116,7 +117,7 @@ export function VDiskInfo({ data, withVDiskPageLink, withTitle, ...infoViewerPro
116
117
  if (links.length) {
117
118
  vdiskInfo.push({
118
119
  label: vDiskInfoKeyset('links'),
119
- value: _jsx("div", { className: b('links'), children: links }),
120
+ value: (_jsx(Flex, { wrap: "wrap", gap: 2, children: links })),
120
121
  });
121
122
  }
122
123
  }