MCPcopy Index your code
hub / github.com/TanStack/devtools / DevTools

Function DevTools

packages/devtools/src/devtools.tsx:24–231  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

22import { SourceInspector } from './components/source-inspector'
23
24export default function DevTools() {
25 const { settings } = createDevtoolsSettings()
26 const { setHeight } = createHeight()
27 const { persistOpen, setPersistOpen } = createPersistOpen()
28 const [rootEl, setRootEl] = createSignal<HTMLDivElement>()
29 const [isOpen, setIsOpen] = createSignal(
30 settings().defaultOpen || persistOpen(),
31 )
32 const pip = createPiPWindow()
33 let panelRef: HTMLDivElement | undefined = undefined
34 const [isResizing, setIsResizing] = createSignal(false)
35
36 const toggleOpen = () => {
37 if (pip().pipWindow) {
38 return
39 }
40 const open = isOpen()
41 const newState = !open
42 setIsOpen(newState)
43 setPersistOpen(newState)
44
45 // Emit event when user toggles devtools
46 devtoolsEventClient.emit('trigger-toggled', { isOpen: newState })
47 }
48
49 // Listen for trigger-toggled events to control devtools
50 createEffect(() => {
51 const unsubscribe = devtoolsEventClient.on('trigger-toggled', (event) => {
52 if (pip().pipWindow) {
53 return
54 }
55 const payload = event.payload as unknown as { isOpen: boolean }
56 const shouldBeOpen = payload.isOpen
57 if (shouldBeOpen !== isOpen()) {
58 setIsOpen(shouldBeOpen)
59 setPersistOpen(shouldBeOpen)
60 }
61 })
62
63 onCleanup(unsubscribe)
64 })
65 // Used to resize the panel
66 const handleDragStart = (
67 panelElement: HTMLDivElement | undefined,
68 startEvent: MouseEvent,
69 ) => {
70 if (startEvent.button !== 0) return // Only allow left click for drag
71 if (!panelElement) return
72 setIsResizing(true)
73
74 const dragInfo = {
75 originalHeight: panelElement.getBoundingClientRect().height,
76 pageY: startEvent.pageY,
77 }
78
79 const run = (moveEvent: MouseEvent) => {
80 const delta = dragInfo.pageY - moveEvent.pageY
81 const newHeight =

Callers

nothing calls this directly

Calls 13

createDevtoolsSettingsFunction · 0.90
createHeightFunction · 0.90
createPersistOpenFunction · 0.90
createPiPWindowFunction · 0.90
createDisableTabbingFunction · 0.90
getHotkeyPermutationsFunction · 0.90
createThemeFunction · 0.90
setPersistOpenFunction · 0.85
runFunction · 0.85
toggleOpenFunction · 0.85
isEditableTargetFunction · 0.85
handleDragStartFunction · 0.85

Tested by

no test coverage detected