Skip to content

Commit 73c53dd

Browse files
authored
feat(ExplainResult): add visualization for simplified query plan (#1061)
1 parent 97dfcfb commit 73c53dd

38 files changed

+1634
-405
lines changed

package-lock.json

+128
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+3-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,9 @@
5252
"use-query-params": "^2.2.1",
5353
"web-vitals": "^1.1.2",
5454
"ydb-ui-components": "^4.2.0",
55-
"zod": "^3.23.8"
55+
"zod": "^3.23.8",
56+
"@gravity-ui/table": "^0.5.0",
57+
"@tanstack/react-table": "^8.19.3"
5658
},
5759
"scripts": {
5860
"analyze": "source-map-explorer 'build/static/js/*.js'",

src/components/Loader/Loader.tsx

+7-1
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,23 @@ import type {LoaderSize} from '@gravity-ui/uikit';
22
import {Loader as KitLoader} from '@gravity-ui/uikit';
33

44
import {cn} from '../../utils/cn';
5+
import {useDelayed} from '../../utils/hooks/useDelayed';
56

67
import './Loader.scss';
78

89
const b = cn('ydb-loader');
910

1011
interface LoaderProps {
1112
size?: LoaderSize;
13+
delay?: number;
1214
className?: string;
1315
}
1416

15-
export const Loader = ({size = 'm', className}: LoaderProps) => {
17+
export const Loader = ({size = 'm', delay = 600, className}: LoaderProps) => {
18+
const show = useDelayed(delay);
19+
if (!show) {
20+
return null;
21+
}
1622
return (
1723
<div className={b(null, className)}>
1824
<KitLoader size={size} />
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import React from 'react';
2+
3+
import type {LoaderSize} from '@gravity-ui/uikit';
4+
5+
import {Loader} from '../Loader/Loader';
6+
7+
interface LoaderWrapperProps {
8+
loading?: boolean;
9+
size?: LoaderSize;
10+
className?: string;
11+
children: React.ReactNode;
12+
}
13+
14+
export function LoaderWrapper({loading, size = 'm', className, children}: LoaderWrapperProps) {
15+
if (loading) {
16+
return <Loader size={size} className={className} />;
17+
}
18+
return children;
19+
}

0 commit comments

Comments
 (0)