diff --git a/packages/web/src/appobj/AppObjectCore.svelte b/packages/web/src/appobj/AppObjectCore.svelte
index dc82c4e3e..629f71a03 100644
--- a/packages/web/src/appobj/AppObjectCore.svelte
+++ b/packages/web/src/appobj/AppObjectCore.svelte
@@ -8,8 +8,8 @@
export let icon;
export let title;
- export let data;
- export let module;
+ export let data = null;
+ export let module = null;
export let isBold = false;
export let isBusy = false;
@@ -24,8 +24,10 @@
export let onPin = null;
export let onUnpin = null;
export let showPinnedInsteadOfUnpin = false;
+ export let indentLevel = 0;
- $: isChecked = checkedObjectsStore && $checkedObjectsStore.find(x => module.extractKey(data) == module.extractKey(x));
+ $: isChecked =
+ checkedObjectsStore && $checkedObjectsStore.find(x => module?.extractKey(data) == module?.extractKey(x));
function handleExpand() {
dispatch('expand');
@@ -33,7 +35,7 @@
function handleClick() {
if (checkedObjectsStore) {
if (isChecked) {
- checkedObjectsStore.update(x => x.filter(y => module.extractKey(data) != module.extractKey(y)));
+ checkedObjectsStore.update(x => x.filter(y => module?.extractKey(data) != module?.extractKey(y)));
} else {
checkedObjectsStore.update(x => [...x, data]);
}
@@ -52,12 +54,14 @@
function setChecked(value) {
if (!value && isChecked) {
- checkedObjectsStore.update(x => x.filter(y => module.extractKey(data) != module.extractKey(y)));
+ checkedObjectsStore.update(x => x.filter(y => module?.extractKey(data) != module?.extractKey(y)));
}
if (value && !isChecked) {
checkedObjectsStore.update(x => [...x, data]);
}
}
+
+ $: console.log(title, indentLevel);
{/if}
+ {#if indentLevel}
+
+ {/if}
{#if isBusy}
{:else}
@@ -188,5 +195,4 @@
float: right;
color: var(--theme-font-2);
}
-
diff --git a/packages/web/src/icons/FontIcon.svelte b/packages/web/src/icons/FontIcon.svelte
index c308bb22b..1ff16ff98 100644
--- a/packages/web/src/icons/FontIcon.svelte
+++ b/packages/web/src/icons/FontIcon.svelte
@@ -167,6 +167,16 @@
'img link': 'mdi mdi-link',
'img filter': 'mdi mdi-filter',
'img group': 'mdi mdi-group',
+
+ 'img folder': 'mdi mdi-folder color-icon-yellow',
+ 'img type-string': 'mdi mdi-alphabetical color-icon-blue',
+ 'img type-hash': 'mdi mdi-pound color-icon-blue',
+ 'img type-set': 'mdi mdi-format-list-bulleted color-icon-blue',
+ 'img type-list': 'mdi mdi-format-list-numbered color-icon-blue',
+ 'img type-zset': 'mdi mdi-format-list-checks color-icon-blue',
+ 'img type-stream': 'mdi mdi-view-stream color-icon-blue',
+ 'img type-binary': 'mdi mdi-file color-icon-blue',
+ 'img type-rejson': 'mdi mdi-color-json color-icon-blue',
};
diff --git a/packages/web/src/widgets/DbKeysSubTree.svelte b/packages/web/src/widgets/DbKeysSubTree.svelte
index ac9b664de..9a0270c20 100644
--- a/packages/web/src/widgets/DbKeysSubTree.svelte
+++ b/packages/web/src/widgets/DbKeysSubTree.svelte
@@ -6,10 +6,11 @@
export let database;
export let root;
+ export let indentLevel = 0;
$: items = useDatabaseKeys({ conid, database, root });
{#each $items || [] as item}
-
+
{/each}
diff --git a/packages/web/src/widgets/DbKeysTree.svelte b/packages/web/src/widgets/DbKeysTree.svelte
index b3303b17b..944c91540 100644
--- a/packages/web/src/widgets/DbKeysTree.svelte
+++ b/packages/web/src/widgets/DbKeysTree.svelte
@@ -1,8 +1,29 @@
-
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/web/src/widgets/DbKeysTreeNode.svelte b/packages/web/src/widgets/DbKeysTreeNode.svelte
index d315238c1..d339bda8c 100644
--- a/packages/web/src/widgets/DbKeysTreeNode.svelte
+++ b/packages/web/src/widgets/DbKeysTreeNode.svelte
@@ -1,4 +1,8 @@
- (isExpanded = !isExpanded)}>
+
{
+ isExpanded = !isExpanded;
+ }}
+ {indentLevel}
+/>
+
{#if isExpanded}
-
+
{/if}