Skip to content

Commit 5c8d83b

Browse files
committed
feat: cleaner suspense tags on components, closes #1529
1 parent ce30047 commit 5c8d83b

File tree

2 files changed

+12
-15
lines changed

2 files changed

+12
-15
lines changed

packages/app-backend-vue3/src/components/tree.ts

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ export class ComponentWalker {
8383
if (subTree.component) {
8484
!suspense ? list.push(subTree.component) : list.push({ ...subTree.component, suspense })
8585
} else if (subTree.suspense) {
86-
const suspenseKey = !subTree.suspense.isInFallback ? 'default' : 'fallback'
86+
const suspenseKey = !subTree.suspense.isInFallback ? 'suspense default' : 'suspense fallback'
8787
list.push(...this.getInternalInstanceChildren(subTree.suspense.activeBranch, { ...subTree.suspense, suspenseKey }))
8888
} else if (Array.isArray(subTree.children)) {
8989
subTree.children.forEach(childSubTree => {
@@ -188,22 +188,14 @@ export class ComponentWalker {
188188
treeNode.domOrder = [-1]
189189
}
190190

191-
if (instance.suspense) {
191+
if (instance.suspense?.suspenseKey) {
192192
treeNode.tags.push({
193-
label: 's',
194-
backgroundColor: 0x7d7dd7,
193+
label: instance.suspense.suspenseKey,
194+
backgroundColor: 0xe492e4,
195195
textColor: 0xffffff,
196-
tooltip: 'Suspense',
197196
})
198-
if (instance.suspense.suspenseKey) {
199-
treeNode.tags.push({
200-
label: instance.suspense.suspenseKey,
201-
backgroundColor: 0xe492e4,
202-
textColor: 0xffffff,
203-
})
204-
// update instanceMap
205-
this.mark(instance, true)
206-
}
197+
// update instanceMap
198+
this.mark(instance, true)
207199
}
208200

209201
return this.api.visitComponentTree(instance, treeNode, this.componentFilter.filter, this.ctx.currentAppRecord.options.app)
Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,22 @@
11
<template>
22
<Suspense>
33
<template #fallback>
4-
Loading...
4+
<Loading />
55
</template>
66
<AsyncSetup />
77
</Suspense>
88
</template>
99

1010
<script>
11+
import { h } from 'vue'
1112
import AsyncSetup from './AsyncSetup.vue'
13+
1214
export default {
1315
components: {
1416
AsyncSetup,
17+
Loading: {
18+
render: () => 'Loading...',
19+
},
1520
},
1621
}
1722
</script>

0 commit comments

Comments
 (0)