-
-
Notifications
You must be signed in to change notification settings - Fork 73
Expand file tree
/
Copy pathindex.tsx
More file actions
63 lines (49 loc) · 1.55 KB
/
index.tsx
File metadata and controls
63 lines (49 loc) · 1.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import { createEffect, createSignal } from 'solid-js'
import { render } from 'solid-js/web'
import { JsonTree, ThemeContextProvider } from '@tanstack/devtools-ui'
import type { TanStackDevtoolsTheme } from '@tanstack/devtools-ui'
import './index.css'
const JsonTreeDate = {
name: 'date format',
value: { period: 'past', data: new Date() },
isoValue: new Date().toISOString(),
}
const JsonTreePath = {
name: 'path collapse',
foo: { bar: 'foo' },
test: [[], [['hi']]],
}
const darkThemeMq = window.matchMedia('(prefers-color-scheme: dark)')
function App() {
const [theme, setTheme] = createSignal<TanStackDevtoolsTheme>(
darkThemeMq.matches ? 'dark' : 'light',
)
createEffect(() => {
document.documentElement.setAttribute('data-theme', theme())
})
const toggleTheme = () => {
setTheme((prev) => (prev === 'dark' ? 'light' : 'dark'))
}
return (
<div class="app-shell">
<button type="button" class="theme-toggle" onClick={toggleTheme}>
Toggle theme ({theme()})
</button>
<ThemeContextProvider theme={theme()}>
<h1>Json tree - dates</h1>
<div class="json-tree-container">
<JsonTree
value={JsonTreeDate}
config={{ dateFormat: 'DD-MM-YYYY' }}
/>
</div>
<h1>Json tree - paths</h1>
<div class="json-tree-container">
<JsonTree value={JsonTreePath} collapsePaths={['foo']} />
</div>
</ThemeContextProvider>
</div>
)
}
const root = document.getElementById('root')
if (root) render(() => <App />, root)