feat(datasets): scroll and highlight on editor click

This commit is contained in:
Yann Amsellem
2025-06-06 11:58:56 +02:00
parent bc616e5b4f
commit ffd2e2d77e
2 changed files with 23 additions and 5 deletions

2
src-tauri/Cargo.lock generated
View File

@@ -19,7 +19,7 @@ checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627"
[[package]]
name = "agx"
version = "0.3.0"
version = "0.3.1"
dependencies = [
"bindgen",
"serde_json",

View File

@@ -2,6 +2,7 @@
import Folder from '$lib/icons/Folder.svelte';
import FolderOpen from '$lib/icons/FolderOpen.svelte';
import Table from '$lib/icons/Table.svelte';
import { tick } from 'svelte';
import Columns from './Columns.svelte';
import { onExpand } from './emitter';
import Tree from './Tree.svelte';
@@ -26,11 +27,22 @@
}
$effect(() =>
onExpand((value) => {
if (node.type === 'dataset' && node.value === value) expanded = true;
else if (node.type === 'group' && findNodeInTree(node.children, value)) expanded = true;
onExpand(async (value) => {
if (node.type === 'dataset' && node.value === value) {
expanded = true;
await tick();
animateExpand(value);
} else if (node.type === 'group' && findNodeInTree(node.children, value)) expanded = true;
})
);
function animateExpand(id: string) {
const element = document.getElementById(id);
if (element) {
element.scrollIntoView({ behavior: 'smooth', block: 'start' });
element.style.backgroundColor = 'yellow';
}
}
</script>
<div class="node" style:opacity={expanded ? 1 : 0.7 + level}>
@@ -53,7 +65,11 @@
{/if}
{#if node.type == 'dataset'}
<span class="name">
<span
class="name"
id={node.value}
ontransitionend={(e) => (e.currentTarget.style.backgroundColor = '')}
>
<Table size={10} />
<span>{node.name}</span>
</span>
@@ -94,6 +110,8 @@
display: flex;
align-items: center;
margin-top: 3px;
transition: background-color linear 0.25s;
}
.name span {