diff --git a/frontend/src/lib/components/common/JsonPreview.svelte b/frontend/src/lib/components/common/JsonPreview.svelte index 05aa8f99d2c..dd0295a4908 100644 --- a/frontend/src/lib/components/common/JsonPreview.svelte +++ b/frontend/src/lib/components/common/JsonPreview.svelte @@ -7,6 +7,7 @@ import RawJson from "$lib/components/common/RawJson.svelte"; import { fade } from "svelte/transition"; import { jsonRepresentationModeStore } from "$lib/derived/json-representation.derived"; + import TestIdWrapper from "$lib/components/common/TestIdWrapper.svelte"; const DEFAULT_EXPANDED_LEVEL = 1; @@ -27,36 +28,38 @@ }; -
- {#if $jsonRepresentationModeStore === "tree"} -
- {#if isExpandedAllVisible} - +
+ {#if $jsonRepresentationModeStore === "tree" && isExpandedAllVisible} +
- {:else} -
- -
+ {/if} +
+ + {#if $jsonRepresentationModeStore === "tree"} +
+ +
+ {:else} +
+ +
+ {/if} +
+
diff --git a/frontend/src/lib/components/common/RawJson.svelte b/frontend/src/lib/components/common/RawJson.svelte index 714cc994e26..f9e5bbf9ed8 100644 --- a/frontend/src/lib/components/common/RawJson.svelte +++ b/frontend/src/lib/components/common/RawJson.svelte @@ -17,7 +17,6 @@ pre { margin: 0; - overflow-x: auto; @include fonts.small; } diff --git a/frontend/src/lib/components/common/TreeJson.svelte b/frontend/src/lib/components/common/TreeJson.svelte index 1afafa39c77..1def6e905c3 100644 --- a/frontend/src/lib/components/common/TreeJson.svelte +++ b/frontend/src/lib/components/common/TreeJson.svelte @@ -2,13 +2,19 @@ import { i18n } from "$lib/stores/i18n"; import { IconExpandMore } from "@dfinity/gix-components"; import TreeJsonValue from "$lib/components/common/TreeJsonValue.svelte"; - import { getTreeJsonValueRenderType } from "$lib/utils/json.utils"; + import { + getTreeJsonValueRenderType, + type TreeJsonValueType, + } from "$lib/utils/json.utils"; import { fade } from "svelte/transition"; + import { typeOfLikeANumber } from "$lib/utils/utils"; export let json: unknown | undefined = undefined; export let defaultExpandedLevel = Infinity; export let _key: string | undefined = undefined; export let _level = 0; + // because the child doesn't know if its parent type + export let _isArrayEntry: boolean | undefined = undefined; let keyLabel: string; let children: [string, unknown][]; @@ -19,8 +25,10 @@ let root: boolean; let keyRoot: boolean; let testId: "json" | undefined; + let valueType: TreeJsonValueType; $: { - isExpandable = getTreeJsonValueRenderType(json) === "object"; + valueType = getTreeJsonValueRenderType(json); + isExpandable = valueType === "object"; keyLabel = `${_key ?? ""}`; children = isExpandable ? Object.entries(json as object) : []; hasChildren = children.length > 0; @@ -36,7 +44,7 @@ $: collapsed = _level >= defaultExpandedLevel; let keyIsIndex = false; - $: keyIsIndex = !isNaN(Number(_key)); + $: keyIsIndex = typeOfLikeANumber(_key) || (_isArrayEntry ?? false); const toggle = () => (collapsed = !collapsed); @@ -46,13 +54,13 @@ {#if _level > 0 && keyLabel}