diff --git a/packages/applet/src/components/state/ChildStateViewer.vue b/packages/applet/src/components/state/ChildStateViewer.vue index 9e46718bd..20e136582 100644 --- a/packages/applet/src/components/state/ChildStateViewer.vue +++ b/packages/applet/src/components/state/ChildStateViewer.vue @@ -4,7 +4,7 @@ import StateFieldViewer from './StateFieldViewer.vue' withDefaults(defineProps<{ data: CustomInspectorState[] - depth: number + depth?: number index: string expandedStateId?: string }>(), { diff --git a/packages/applet/src/components/tree/TreeViewer.vue b/packages/applet/src/components/tree/TreeViewer.vue index 8da159b3f..ace0f47f5 100644 --- a/packages/applet/src/components/tree/TreeViewer.vue +++ b/packages/applet/src/components/tree/TreeViewer.vue @@ -2,6 +2,7 @@ import type { ComponentTreeNode, InspectorTree } from '@vue/devtools-kit' import { UNDEFINED } from '@vue/devtools-kit' import { vTooltip } from '@vue/devtools-ui' +import { ref } from 'vue' import NodeTag from '~/components/basic/NodeTag.vue' import ToggleExpanded from '~/components/basic/ToggleExpanded.vue' import ComponentTreeViewer from '~/components/tree/TreeViewer.vue' @@ -10,8 +11,8 @@ import { useToggleExpanded } from '~/composables/toggle-expanded' const props = withDefaults(defineProps<{ data: ComponentTreeNode[] | InspectorTree[] - depth: number - withTag: boolean + depth?: number + withTag?: boolean }>(), { depth: 0, withTag: false, @@ -20,6 +21,7 @@ const emit = defineEmits(['hover', 'leave']) const selectedNodeId = defineModel() const { expanded, toggleExpanded } = useToggleExpanded() const { select: _select } = useSelect() +const hoveredNodeId = ref(null) function normalizeLabel(item: ComponentTreeNode | InspectorTree) { return ('name' in item && item?.name) || ('label' in item && item.label) @@ -28,6 +30,20 @@ function normalizeLabel(item: ComponentTreeNode | InspectorTree) { function select(id: string) { selectedNodeId.value = id } +function onNodeHover(item: ComponentTreeNode | InspectorTree) { + hoveredNodeId.value = item.id + emit('hover', item.id) +} + +function onNodeLeave() { + hoveredNodeId.value = null + emit('leave') +} + +function onExpandToggleClick(event: Event, itemId: string) { + event.stopPropagation() + toggleExpanded(itemId) +}