Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 8d82035

Browse files
committedJul 29, 2024
feat: Add event and props
1 parent edde3bd commit 8d82035

File tree

7 files changed

+69
-14
lines changed

7 files changed

+69
-14
lines changed
 

Diff for: ‎packages/applet/src/modules/components/index.vue

+7-3
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,12 @@ import ComponentTree from '~/components/tree/TreeViewer.vue'
1616
import { createExpandedContext } from '~/composables/toggle-expanded'
1717
import { createSelectedContext } from '~/composables/select'
1818
import RootStateViewer from '~/components/state/RootStateViewer.vue'
19-
import { searchDeepInObject } from '~/utils'
19+
import { getValidNodeId, searchDeepInObject } from '~/utils'
2020
21-
const emit = defineEmits(['openInEditor', 'onInspectComponentStart', 'onInspectComponentEnd'])
21+
const props = defineProps<{
22+
savedSelectedId: string
23+
}>()
24+
const emit = defineEmits(['openInEditor', 'onInspectComponentStart', 'onInspectComponentEnd', 'onSelectId'])
2225
// responsive layout
2326
const splitpanesRef = ref<HTMLDivElement>()
2427
const splitpanesReady = ref(false)
@@ -133,7 +136,7 @@ async function getComponentsInspectorTree(filter = '') {
133136
return rpc.value.getInspectorTree({ inspectorId, filter }).then((data) => {
134137
const res = parse(data)
135138
tree.value = res
136-
activeComponentId.value = tree.value?.[0]?.id
139+
activeComponentId.value = getValidNodeId(tree.value, props.savedSelectedId) || tree.value?.[0]?.id
137140
expandedTreeNodes.value = getNodesByDepth(treeNodeLinkedList.value, 1)
138141
componentTreeLoaded.value = true
139142
})
@@ -163,6 +166,7 @@ function getComponentState(id: string) {
163166
164167
watch(activeComponentId, (id) => {
165168
getComponentState(id)
169+
emit('onSelectId', id)
166170
if (componentRenderCodeVisible.value) {
167171
getComponentRenderCode()
168172
}

Diff for: ‎packages/applet/src/modules/custom-inspector/components/state/Index.vue

+11-2
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,17 @@ import DevToolsHeader from '~/components/basic/DevToolsHeader.vue'
1111
import Empty from '~/components/basic/Empty.vue'
1212
import RootStateViewer from '~/components/state/RootStateViewer.vue'
1313
import { createExpandedContext } from '~/composables/toggle-expanded'
14+
import { getValidNodeId } from '~/utils'
1415
import { useCustomInspectorState } from '~/composables/custom-inspector-state'
1516
import ComponentTree from '~/components/tree/TreeViewer.vue'
1617
18+
const props = defineProps<{
19+
savedSelectedId?: string
20+
}>()
21+
const emit = defineEmits<{
22+
(e: 'onSelectId', id: string): void
23+
}>()
24+
1725
const { expanded: expandedTreeNodes } = createExpandedContext()
1826
const { expanded: expandedStateNodes } = createExpandedContext('custom-inspector-state')
1927
@@ -118,16 +126,17 @@ function clearInspectorState() {
118126
watch(selected, () => {
119127
clearInspectorState()
120128
getInspectorState(selected.value)
129+
emit('onSelectId', selected.value)
121130
})
122131
123132
const getInspectorTree = () => {
124133
rpc.value.getInspectorTree({ inspectorId: inspectorId.value, filter: '' }).then((_data) => {
125134
const data = parse(_data!)
126135
tree.value = data
127136
if (!selected.value && data.length) {
128-
selected.value = data[0].id
137+
selected.value = getValidNodeId(tree.value, props.savedSelectedId) || data[0].id
129138
expandedTreeNodes.value = getNodesByDepth(treeNodeLinkedList.value, 1)
130-
getInspectorState(data[0].id)
139+
getInspectorState(selected.value)
131140
}
132141
})
133142
}

Diff for: ‎packages/applet/src/modules/custom-inspector/index.vue

+7-2
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,10 @@ import { createCustomInspectorStateContext } from '~/composables/custom-inspecto
1111
1212
const props = defineProps<{
1313
id: string
14+
savedSelectedId?: string
1415
}>()
16+
const emit = defineEmits(['loadError', 'onSelectId'])
1517
16-
const emit = defineEmits(['loadError'])
1718
const inspectorState = createCustomInspectorStateContext()
1819
const loading = ref(false)
1920
@@ -74,13 +75,17 @@ watch(() => props.id, () => {
7475
onUnmounted(() => {
7576
rpc.value.unhighlight()
7677
})
78+
79+
function handleSelectId(id: string) {
80+
emit('onSelectId', id)
81+
}
7782
</script>
7883

7984
<template>
8085
<div h-full w-full>
8186
<div v-if="loading">
8287
<AppConnecting />
8388
</div>
84-
<VirtualRouterView v-else />
89+
<VirtualRouterView v-else :saved-selected-id="savedSelectedId" @on-select-id="handleSelectId" />
8590
</div>
8691
</template>

Diff for: ‎packages/applet/src/modules/pinia/components/store/Index.vue

+11-3
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,16 @@ import DevToolsHeader from '~/components/basic/DevToolsHeader.vue'
1010
import Empty from '~/components/basic/Empty.vue'
1111
import RootStateViewer from '~/components/state/RootStateViewer.vue'
1212
import ComponentTree from '~/components/tree/TreeViewer.vue'
13-
13+
import { getValidNodeId } from '~/utils'
1414
import { createExpandedContext } from '~/composables/toggle-expanded'
1515
16+
const props = defineProps<{
17+
savedSelectedId?: string
18+
}>()
19+
const emit = defineEmits<{
20+
(e: 'onSelectId', id: string): void
21+
}>()
22+
1623
const { expanded: expandedTreeNodes } = createExpandedContext()
1724
const { expanded: expandedStateNodes } = createExpandedContext('pinia-store-state')
1825
@@ -116,15 +123,16 @@ function clearPiniaState() {
116123
watch(selected, () => {
117124
clearPiniaState()
118125
getPiniaState(selected.value)
126+
emit('onSelectId', selected.value)
119127
})
120128
121129
const getPiniaInspectorTree = () => {
122130
rpc.value.getInspectorTree({ inspectorId, filter: '' }).then((_data) => {
123131
const data = parse(_data!)
124132
tree.value = data
125133
if (!selected.value && data.length) {
126-
selected.value = data[0].id
127-
getPiniaState(data[0].id)
134+
selected.value = getValidNodeId(tree.value, props.savedSelectedId) || data[0].id
135+
getPiniaState(selected.value)
128136
expandedTreeNodes.value = getNodesByDepth(treeNodeLinkedList.value, 1)
129137
}
130138
})

Diff for: ‎packages/applet/src/modules/pinia/index.vue

+12-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,13 @@ import Store from './components/store/Index.vue'
44
import Timeline from './components/timeline/Index.vue'
55
import { registerVirtualRouter } from '~/composables/virtual-router'
66
7+
const props = defineProps<{
8+
savedSelectedId?: string
9+
}>()
10+
const emit = defineEmits<{
11+
(e: 'onSelectId', id: string): void
12+
}>()
13+
714
const { VirtualRouterView } = registerVirtualRouter([
815
{
916
path: '/store',
@@ -26,10 +33,14 @@ const { VirtualRouterView } = registerVirtualRouter([
2633
], {
2734
defaultRoutePath: '/store',
2835
})
36+
37+
const handleSelectId = (id: string) => {
38+
emit('onSelectId', id)
39+
}
2940
</script>
3041

3142
<template>
3243
<div h-full w-full>
33-
<VirtualRouterView />
44+
<VirtualRouterView :saved-selected-id="savedSelectedId" @on-select-id="handleSelectId" />
3445
</div>
3546
</template>

Diff for: ‎packages/applet/src/modules/router/components/routes/Index.vue

+11-2
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,16 @@ import Empty from '~/components/basic/Empty.vue'
1111
import RootStateViewer from '~/components/state/RootStateViewer.vue'
1212
import { createExpandedContext } from '~/composables/toggle-expanded'
1313
import { useCustomInspectorState } from '~/composables/custom-inspector-state'
14+
import { getValidNodeId } from '~/utils'
1415
import ComponentTree from '~/components/tree/TreeViewer.vue'
1516
17+
const props = defineProps<{
18+
savedSelectedId?: string
19+
}>()
20+
const emit = defineEmits<{
21+
(e: 'onSelectId', id: string): void
22+
}>()
23+
1624
const { expanded: expandedTreeNodes } = createExpandedContext()
1725
const { expanded: expandedStateNodes } = createExpandedContext('routes-state')
1826
@@ -90,15 +98,16 @@ function clearRoutesState() {
9098
watch(selected, () => {
9199
clearRoutesState()
92100
getRoutesState(selected.value)
101+
emit('onSelectId', selected.value)
93102
})
94103
95104
const getRoutesInspectorTree = () => {
96105
rpc.value.getInspectorTree({ inspectorId: inspectorId.value, filter: '' }).then((_data) => {
97106
const data = parse(_data!)
98107
tree.value = data
99108
if (!selected.value && data.length) {
100-
selected.value = data[0].id
101-
getRoutesState(data[0].id)
109+
selected.value = getValidNodeId(data, props.savedSelectedId) || data[0].id
110+
getRoutesState(selected.value)
102111
expandedTreeNodes.value = getNodesByDepth(treeNodeLinkedList.value, 1)
103112
}
104113
})

Diff for: ‎packages/applet/src/modules/router/index.vue

+10-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,12 @@ import { createCustomInspectorStateContext } from '~/composables/custom-inspecto
99
1010
const props = defineProps<{
1111
id: string
12+
savedSelectedId?: string
1213
}>()
14+
const emit = defineEmits<{
15+
(e: 'onSelectId', id: string): void
16+
}>()
17+
1318
const inspectorState = createCustomInspectorStateContext()
1419
const loading = ref(false)
1520
const { VirtualRouterView, restoreRouter } = registerVirtualRouter([
@@ -61,10 +66,14 @@ watch(() => props.id, (v) => {
6166
getInspectorInfo()
6267
}
6368
})
69+
70+
const handleSelectId = (id: string) => {
71+
emit('onSelectId', id)
72+
}
6473
</script>
6574

6675
<template>
6776
<div h-full w-full>
68-
<VirtualRouterView />
77+
<VirtualRouterView :saved-selected-id="savedSelectedId" @on-select-id="handleSelectId" />
6978
</div>
7079
</template>

0 commit comments

Comments
 (0)
Please sign in to comment.