|
1 | 1 | import { For, Show, createEffect, createSignal } from 'solid-js' |
2 | 2 | import clsx from 'clsx' |
3 | | -import { customElement, noShadowDOM } from "solid-element" |
| 3 | +import { customElement, noShadowDOM } from 'solid-element' |
4 | 4 | import { useStyles } from '../styles/use-styles' |
5 | 5 |
|
6 | 6 | export function JsonTree(props: { value: any }) { |
7 | | - |
8 | 7 | return <JsonValue isRoot value={props.value} /> |
9 | 8 | } |
10 | 9 |
|
@@ -168,32 +167,33 @@ const ObjectValue = ({ |
168 | 167 | ) |
169 | 168 | } |
170 | 169 |
|
171 | | - |
172 | | -export const registerJsonTreeComponent = (elName: string = "tsd-json-tree") => customElement(elName, { value: {}, }, (props, { element }) => { |
173 | | - noShadowDOM() |
174 | | - function getValue(value: any) { |
175 | | - |
176 | | - if (typeof value === 'string') { |
177 | | - try { |
178 | | - const parsedValue = JSON.parse(value) |
179 | | - return parsedValue |
180 | | - } catch (e) { |
181 | | - return value |
| 170 | +export const registerJsonTreeComponent = (elName: string = 'tsd-json-tree') => |
| 171 | + customElement(elName, { value: {} }, (props, { element }) => { |
| 172 | + noShadowDOM() |
| 173 | + function getValue(value: any) { |
| 174 | + if (typeof value === 'string') { |
| 175 | + try { |
| 176 | + const parsedValue = JSON.parse(value) |
| 177 | + return parsedValue |
| 178 | + } catch (e) { |
| 179 | + return value |
| 180 | + } |
182 | 181 | } |
| 182 | + return value |
183 | 183 | } |
184 | | - return value |
185 | | - } |
186 | | - const [value, setValue] = createSignal(getValue(props.value)) |
| 184 | + const [value, setValue] = createSignal(getValue(props.value)) |
187 | 185 |
|
188 | | - createEffect(() => { |
189 | | - element.addPropertyChangedCallback((name, value) => { |
190 | | - if (name === "value") { |
191 | | - const finalValue = getValue(value) |
192 | | - setValue(finalValue) |
193 | | - } |
| 186 | + createEffect(() => { |
| 187 | + element.addPropertyChangedCallback((name, value) => { |
| 188 | + if (name === 'value') { |
| 189 | + const finalValue = getValue(value) |
| 190 | + setValue(finalValue) |
| 191 | + } |
| 192 | + }) |
194 | 193 | }) |
| 194 | + return ( |
| 195 | + <Show keyed when={value()}> |
| 196 | + <JsonTree value={value()} /> |
| 197 | + </Show> |
| 198 | + ) |
195 | 199 | }) |
196 | | - return <Show keyed when={value()}><JsonTree value={value()} /></Show> |
197 | | -}) |
198 | | - |
199 | | - |
0 commit comments