better badges for empty/loading model library folders (#953)

* better badges for empty/loading model library folders

for #945

* fix total count on loaded nodes

* fix test break

* additional test fix

* use a null prop fallback instead of having to explicitly calc

* patch
This commit is contained in:
Alex "mcmonkey" Goodwin
2024-09-24 16:37:30 +09:00
committed by Chenlei Hu
parent 4e5bcd6a3b
commit d2d645f74b
5 changed files with 38 additions and 15 deletions

View File

@@ -82,14 +82,16 @@ const getTreeNodeIcon = (node: TreeExplorerNode) => {
}
const fillNodeInfo = (node: TreeExplorerNode): RenderedTreeExplorerNode => {
const children = node.children?.map(fillNodeInfo)
const totalLeaves = node.leaf
? 1
: children.reduce((acc, child) => acc + child.totalLeaves, 0)
return {
...node,
icon: getTreeNodeIcon(node),
children,
type: node.leaf ? 'node' : 'folder',
totalLeaves: node.leaf
? 1
: children.reduce((acc, child) => acc + child.totalLeaves, 0)
totalLeaves,
badgeText: node.getBadgeText ? node.getBadgeText(node) : null
}
}
const onNodeContentClick = async (

View File

@@ -22,7 +22,7 @@
</span>
<Badge
v-if="!props.node.leaf"
:value="props.node.totalLeaves"
:value="props.node.badgeText ?? props.node.totalLeaves"
severity="secondary"
class="leaf-count-badge"
/>

View File

@@ -56,7 +56,7 @@ describe('TreeExplorerTreeNode', () => {
expect(wrapper.findComponent(EditableText).props('modelValue')).toBe(
'Test Node'
)
expect(wrapper.findComponent(Badge).props()['value']).toBe(3)
expect(wrapper.findComponent(Badge).props()['value'].toString()).toBe('3')
})
it('makes node label editable when renamingEditingNode matches', async () => {