Skip to content

Commit c95dcb7

Browse files
committed
Move useMainGraphWidth
1 parent acb6240 commit c95dcb7

2 files changed

Lines changed: 32 additions & 26 deletions

File tree

assets/js/dashboard/stats/graph/main-graph.tsx

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
1-
import React, { ReactNode, useCallback, useMemo, useState } from 'react'
1+
import React, {
2+
ReactNode,
3+
useCallback,
4+
useEffect,
5+
useMemo,
6+
useState
7+
} from 'react'
28
import { UIMode, useTheme } from '../../theme-context'
39
import {
410
FormattableMetric,
@@ -760,3 +766,27 @@ const METRIC_LABELS = {
760766
scroll_depth: 'Scroll depth',
761767
time_on_page: 'Time on page'
762768
}
769+
770+
export function useMainGraphWidth(
771+
mainGraphContainer: React.RefObject<HTMLDivElement>
772+
): { width: number } {
773+
const [width, setWidth] = useState<number>(0)
774+
775+
useEffect(() => {
776+
const resizeObserver = new ResizeObserver(([e]) => {
777+
setWidth(e.contentRect.width)
778+
})
779+
780+
if (mainGraphContainer.current) {
781+
resizeObserver.observe(mainGraphContainer.current)
782+
}
783+
784+
return () => {
785+
resizeObserver.disconnect()
786+
}
787+
}, [mainGraphContainer])
788+
789+
return {
790+
width
791+
}
792+
}

assets/js/dashboard/stats/graph/visitor-graph.tsx

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import { DashboardPeriod } from '../../dashboard-time-periods'
1717
import { DashboardState } from '../../dashboard-state'
1818
import { nowForSite } from '../../util/date'
1919
import { getStaleTime } from '../../hooks/api-client'
20-
import { MainGraph, MainGraphContainer } from './main-graph'
20+
import { MainGraph, MainGraphContainer, useMainGraphWidth } from './main-graph'
2121
import { createStatsQuery } from '../../stats-query'
2222
import { isRealTimeDashboard } from '../../util/filters'
2323

@@ -451,27 +451,3 @@ function useGuessTopStatsHeight(
451451
getStoredTopStatsHeight(site) ?? DEFAULT_TOP_STATS_LOADING_HEIGHT_PX
452452
}
453453
}
454-
455-
function useMainGraphWidth(
456-
mainGraphContainer: React.RefObject<HTMLDivElement>
457-
): { width: number } {
458-
const [width, setWidth] = useState<number>(0)
459-
460-
useEffect(() => {
461-
const resizeObserver = new ResizeObserver(([e]) => {
462-
setWidth(e.contentRect.width)
463-
})
464-
465-
if (mainGraphContainer.current) {
466-
resizeObserver.observe(mainGraphContainer.current)
467-
}
468-
469-
return () => {
470-
resizeObserver.disconnect()
471-
}
472-
}, [mainGraphContainer])
473-
474-
return {
475-
width
476-
}
477-
}

0 commit comments

Comments
 (0)