@@ -4,7 +4,6 @@ import {CirclePlay, Clock, Display, Person, Rocket} from '@gravity-ui/icons';
44import { ArrowToggle , Button , Disclosure , Flex , Icon , Label , Text } from '@gravity-ui/uikit' ;
55import { useHistory , useLocation } from 'react-router-dom' ;
66
7- import { defaultDashboardConfig } from '../../containers/Tenant/Diagnostics/TenantOverview/DefaultOverviewContent/defaultDashboardConfig' ;
87import { TenantTabsGroups , getTenantPath } from '../../containers/Tenant/TenantPages' ;
98import { parseQuery } from '../../routes' ;
109import { topQueriesApi } from '../../store/reducers/executeTopQueries/executeTopQueries' ;
@@ -13,10 +12,9 @@ import type {KeyValueRow} from '../../types/api/query';
1312import { cn } from '../../utils/cn' ;
1413import { useAutoRefreshInterval } from '../../utils/hooks' ;
1514import type { TimeFrame } from '../../utils/timeframes' ;
16- import { MetricChart } from '../MetricChart/MetricChart' ;
1715import { chartApi } from '../MetricChart/reducer' ;
18- import type { ChartDataStatus } from '../MetricChart/types' ;
1916
17+ import { QueriesActivityCharts } from './QueriesActivityCharts' ;
2018import i18n from './i18n' ;
2119import { calculateLatency , calculateQueriesPerSecond } from './utils' ;
2220
@@ -33,16 +31,8 @@ export function QueriesActivityBar({tenantName}: QueriesActivityBarProps) {
3331 const location = useLocation ( ) ;
3432 const [ autoRefreshInterval ] = useAutoRefreshInterval ( ) ;
3533 const [ expanded , setExpanded ] = React . useState ( false ) ;
36- const [ queriesTimeFrame , setQueriesTimeFrame ] = React . useState < TimeFrame > ( '1h' ) ;
37- const [ latenciesTimeFrame , setLatenciesTimeFrame ] = React . useState < TimeFrame > ( '1h' ) ;
38- const [ areChartsHidden , setAreChartsHidden ] = React . useState ( true ) ;
39-
40- // Extract chart configurations from defaultDashboardConfig
41- const queriesChartConfig = defaultDashboardConfig [ 0 ] ; // Queries per second chart
42- const latenciesChartConfig = defaultDashboardConfig [ 1 ] ; // Transaction latencies chart
43-
44- // Refetch data only if charts successfully loaded
45- const shouldRefresh = areChartsHidden ? 0 : autoRefreshInterval ;
34+ const [ queriesTimeFrame ] = React . useState < TimeFrame > ( '1h' ) ;
35+ const [ latenciesTimeFrame ] = React . useState < TimeFrame > ( '1h' ) ;
4636
4737 // Fetch running queries
4838 const { data : runningQueriesData } = topQueriesApi . useGetRunningQueriesQuery (
@@ -118,12 +108,6 @@ export function QueriesActivityBar({tenantName}: QueriesActivityBarProps) {
118108 history . push ( path ) ;
119109 } ;
120110
121- const handleChartDataStatusChange = React . useCallback ( ( status : ChartDataStatus ) => {
122- if ( status === 'success' ) {
123- setAreChartsHidden ( false ) ;
124- }
125- } , [ ] ) ;
126-
127111 // Helper to format trend display
128112 const formatTrendValue = ( val : number ) => {
129113 if ( val >= 1 ) {
@@ -135,14 +119,6 @@ export function QueriesActivityBar({tenantName}: QueriesActivityBarProps) {
135119 }
136120 } ;
137121
138- const handleQueriesTimeFrameChange = React . useCallback ( ( newTimeFrame : TimeFrame ) => {
139- setQueriesTimeFrame ( newTimeFrame ) ;
140- } , [ ] ) ;
141-
142- const handleLatenciesTimeFrameChange = React . useCallback ( ( newTimeFrame : TimeFrame ) => {
143- setLatenciesTimeFrame ( newTimeFrame ) ;
144- } , [ ] ) ;
145-
146122 return (
147123 < div className = { b ( { expanded} ) } >
148124 < Disclosure expanded = { expanded } onUpdate = { setExpanded } className = { b ( 'disclosure' ) } >
@@ -237,61 +213,7 @@ export function QueriesActivityBar({tenantName}: QueriesActivityBarProps) {
237213 </ div >
238214 </ div >
239215 </ Disclosure >
240-
241- { /*
242- WORKAROUND: Charts are rendered outside Disclosure component due to YAGR tooltip bug
243- Issue: https://github.com/gravity-ui/yagr/issues/262
244-
245- Problem: YAGR tooltips don't work when charts are mounted inside collapsible containers
246- that use CSS transforms or have complex nested DOM structures. The tooltip initialization
247- fails when the chart is not immediately visible during mounting.
248-
249- TODO: Remove this workaround once the upstream issue is fixed
250- */ }
251- { expanded && (
252- < div
253- className = { b ( 'charts' ) }
254- style = { { display : areChartsHidden ? 'none' : undefined } }
255- >
256- < div className = { b ( 'chart-container' ) } >
257- < MetricChart
258- database = { tenantName }
259- title = { queriesChartConfig . title }
260- metrics = { queriesChartConfig . metrics }
261- timeFrame = { queriesTimeFrame }
262- autorefresh = { shouldRefresh }
263- height = { 260 }
264- chartOptions = { queriesChartConfig . options }
265- onChartDataStatusChange = { handleChartDataStatusChange }
266- isChartVisible = { ! areChartsHidden }
267- noBorder = { true }
268- fullWidth = { true }
269- withTimeframeSelector = { true }
270- onTimeFrameChange = { handleQueriesTimeFrameChange }
271- timeFrameComponent = "dropdown"
272- />
273- </ div >
274-
275- < div className = { b ( 'chart-container' ) } >
276- < MetricChart
277- database = { tenantName }
278- title = { latenciesChartConfig . title }
279- metrics = { latenciesChartConfig . metrics }
280- timeFrame = { latenciesTimeFrame }
281- autorefresh = { shouldRefresh }
282- height = { 260 }
283- chartOptions = { latenciesChartConfig . options }
284- onChartDataStatusChange = { handleChartDataStatusChange }
285- isChartVisible = { ! areChartsHidden }
286- noBorder = { true }
287- fullWidth = { true }
288- withTimeframeSelector = { true }
289- onTimeFrameChange = { handleLatenciesTimeFrameChange }
290- timeFrameComponent = "dropdown"
291- />
292- </ div >
293- </ div >
294- ) }
216+ < QueriesActivityCharts tenantName = { tenantName } expanded = { expanded } />
295217 </ div >
296218 ) ;
297219}
0 commit comments