Skip to content

Commit 1f1c7fd

Browse files
committed
fix(components): more reliable tree loading
1 parent 033b2be commit 1f1c7fd

File tree

2 files changed

+23
-0
lines changed

2 files changed

+23
-0
lines changed

packages/app-frontend/src/features/components/ComponentsInspector.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ export default defineComponent({
2727
subscribeToSelectedData()
2828
2929
onMounted(() => {
30+
requestComponentTree()
3031
selectLastComponent()
3132
})
3233

packages/app-frontend/src/features/components/composable/components.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,8 @@ export function resetComponents () {
263263

264264
export const requestedComponentTree = new Set()
265265

266+
let requestComponentTreeRetryDelay = 500
267+
266268
export async function requestComponentTree (instanceId: ComponentTreeNode['id'] = null) {
267269
if (!instanceId) {
268270
instanceId = '_root'
@@ -275,12 +277,32 @@ export async function requestComponentTree (instanceId: ComponentTreeNode['id']
275277

276278
await waitForAppSelect()
277279

280+
_sendTreeRequest(instanceId)
281+
_queueRetryTree(instanceId)
282+
}
283+
284+
function _sendTreeRequest (instanceId: ComponentTreeNode['id']) {
278285
getBridge().send(BridgeEvents.TO_BACK_COMPONENT_TREE, {
279286
instanceId,
280287
filter: treeFilter.value,
281288
})
282289
}
283290

291+
function _queueRetryTree (instanceId: ComponentTreeNode['id']) {
292+
setTimeout(() => _retryRequestComponentTree(instanceId), requestComponentTreeRetryDelay)
293+
requestComponentTreeRetryDelay *= 1.5
294+
}
295+
296+
function _retryRequestComponentTree (instanceId: ComponentTreeNode['id']) {
297+
if (rootInstances.value.length) {
298+
requestComponentTreeRetryDelay = 500
299+
return
300+
}
301+
console.log(_retryRequestComponentTree)
302+
_sendTreeRequest(instanceId)
303+
_queueRetryTree(instanceId)
304+
}
305+
284306
export function ensureComponentsMapData (data: ComponentTreeNode) {
285307
let component = componentsMap.value[data.id]
286308
if (!component) {

0 commit comments

Comments
 (0)