MCPcopy Create free account
hub / github.com/TanStack/devtools / MainPanel

Function MainPanel

packages/devtools/src/components/main-panel.tsx:13–50  ·  view source on GitHub ↗
(props: {
  isOpen: Accessor<boolean>
  children: JSX.Element
  isResizing: Accessor<boolean>
})

Source from the content-addressed store, hash-verified

11import type { Accessor, JSX } from 'solid-js'
12
13export const MainPanel = (props: {
14 isOpen: Accessor<boolean>
15 children: JSX.Element
16 isResizing: Accessor<boolean>
17 isCollapsed: Accessor<boolean>
18 hasSubheader: Accessor<boolean>
19}) => {
20 const styles = createStyles()
21 const { height } = createHeight()
22 const { settings } = createDevtoolsSettings()
23 const pip = createPiPWindow()
24 const panelWindow = () =>
25 pip().pipWindow ?? (typeof window === 'undefined' ? null : window)
26 const readClientWidth = () => {
27 const targetWindow = panelWindow()
28 if (!targetWindow) return 0
29 return (
30 targetWindow.document.documentElement.clientWidth ||
31 targetWindow.innerWidth
32 )
33 }
34 const [clientWidth, setClientWidth] = createSignal(readClientWidth())
35
36 createEffect(() => {
37 const targetWindow = panelWindow()
38 if (!targetWindow) return
39 const targetRoot = targetWindow.document.documentElement
40 const syncClientWidth = () => {
41 setClientWidth(targetRoot.clientWidth || targetWindow.innerWidth)
42 }
43 syncClientWidth()
44 targetWindow.addEventListener('resize', syncClientWidth)
45 const ResizeObserverConstructor =
46 (targetWindow as Window & { ResizeObserver?: typeof ResizeObserver })
47 .ResizeObserver ??
48 (globalThis as unknown as { ResizeObserver?: typeof ResizeObserver })
49 .ResizeObserver
50 const resizeObserver = ResizeObserverConstructor
51 ? new ResizeObserverConstructor(syncClientWidth)
52 : null
53 resizeObserver?.observe(targetRoot)

Callers

nothing calls this directly

Calls 5

createStylesFunction · 0.90
createHeightFunction · 0.90
createDevtoolsSettingsFunction · 0.90
createPiPWindowFunction · 0.90
isOpenMethod · 0.80

Tested by

no test coverage detected