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}