(props: {
isOpen: Accessor<boolean>
children: JSX.Element
isResizing: Accessor<boolean>
})
| 11 | import type { Accessor, JSX } from 'solid-js' |
| 12 | |
| 13 | export 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) |
nothing calls this directly
no test coverage detected