atmosphere explorer

cleanup json.tsx

handle.invalid 151fdf84 19c1f002

verified
+10 -20
+10 -20
src/components/json.tsx
··· 146 146 ); 147 147 }; 148 148 149 - const JSONBoolean = ({ data }: { data: boolean }) => { 150 - return <span>{data ? "true" : "false"}</span>; 151 - }; 152 - 153 - const JSONNull = () => { 154 - return <span>null</span>; 155 - }; 156 - 157 149 const CollapsibleItem = (props: { 158 150 label: string | number; 159 151 value: JSONType; ··· 182 174 const len = (props.value as JSONType[]).length; 183 175 return `[ ${len} ${len === 1 ? "item" : "items"} ]`; 184 176 } 185 - if (isObject()) { 186 - const len = Object.keys(props.value as object).length; 187 - return `{ ${len} ${len === 1 ? "key" : "keys"} }`; 188 - } 177 + const len = Object.keys(props.value as object).length; 178 + return `{ ${len} ${len === 1 ? "key" : "keys"} }`; 189 179 }; 190 180 191 181 return ( ··· 356 346 ); 357 347 }; 358 348 349 + if (Object.keys(props.data).length === 0) 350 + return <span class="text-neutral-400 dark:text-neutral-500">{"{ }"}</span>; 351 + 359 352 if (blob.$type === "blob") { 360 353 return ( 361 354 <> ··· 371 364 }; 372 365 373 366 const JSONArray = (props: { data: JSONType[] }) => { 367 + if (props.data.length === 0) 368 + return <span class="text-neutral-400 dark:text-neutral-500">[ ]</span>; 374 369 return ( 375 370 <For each={props.data}> 376 371 {(value, index) => <CollapsibleItem label={`#${index()}`} value={value} />} ··· 388 383 if (typeof data === "string") 389 384 return <JSONString data={data} isType={props.isType} isLink={props.isLink} />; 390 385 if (typeof data === "number") return <JSONNumber data={data} isSize={props.isSize} />; 391 - if (typeof data === "boolean") return <JSONBoolean data={data} />; 392 - if (data === null) return <JSONNull />; 393 - if (Array.isArray(data)) 394 - return data.length === 0 ? 395 - <span class="text-neutral-400 dark:text-neutral-500">[ ]</span> 396 - : <JSONArray data={data} />; 397 - if (Object.keys(data).length === 0) 398 - return <span class="text-neutral-400 dark:text-neutral-500">{"{ }"}</span>; 386 + if (typeof data === "boolean") return <span>{String(data)}</span>; 387 + if (data === null) return <span>null</span>; 388 + if (Array.isArray(data)) return <JSONArray data={data} />; 399 389 return <JSONObject data={data} />; 400 390 }; 401 391