Skip to content

Commit 8477e94

Browse files
hootlexAkryum
authored andcommitted
feat: Make Collapse/Expand All affects child elements (#715)
* make Collapse All and Expand All affect child elements * ignore yarn-error.log * fix: put a depth limit on expand all * fix: reset forceCollapse when changing target * fix: user select none on data type
1 parent a3c9db3 commit 8477e94

File tree

3 files changed

+31
-1
lines changed

3 files changed

+31
-1
lines changed

Diff for: .gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@ selenium-debug.log
88
TODOs.md
99
.idea
1010
.web-extension-id
11+
yarn-error.log

Diff for: src/devtools/components/DataField.vue

+19
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,7 @@
181181
:editable="isEditable"
182182
:removable="isSubfieldsEditable"
183183
:renamable="editable && valueType === 'plain-object'"
184+
:force-collapse="forceCollapse"
184185
/>
185186
<span
186187
v-if="formattedSubFields.length > limit"
@@ -197,6 +198,7 @@
197198
:depth="depth + 1"
198199
:path="`${path}.${newField.key}`"
199200
:renamable="valueType === 'plain-object'"
201+
:force-collapse="forceCollapse"
200202
editable
201203
removable
202204
@cancel-edit="addingValue = false"
@@ -255,6 +257,10 @@ export default {
255257
path: {
256258
type: String,
257259
required: true
260+
},
261+
forceCollapse: {
262+
type: String,
263+
default: null
258264
}
259265
},
260266
@@ -431,6 +437,19 @@ export default {
431437
}
432438
},
433439
440+
watch: {
441+
forceCollapse: {
442+
handler (value) {
443+
if (value === 'expand' && this.depth < 4) {
444+
this.expanded = true
445+
} else if (value === 'collapse') {
446+
this.expanded = false
447+
}
448+
},
449+
immediate: true
450+
}
451+
},
452+
434453
methods: {
435454
copyToClipboard () {
436455
copyToClipboard(this.field.value)

Diff for: src/devtools/components/StateInspector.vue

+11-1
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
:depth="0"
3535
:path="field.key"
3636
:editable="field.editable"
37+
:force-collapse="forceCollapse"
3738
/>
3839
</template>
3940
<template v-else>
@@ -77,7 +78,8 @@ export default {
7778
7879
data () {
7980
return {
80-
expandedState: {}
81+
expandedState: {},
82+
forceCollapse: null
8183
}
8284
},
8385
@@ -101,6 +103,12 @@ export default {
101103
}
102104
},
103105
106+
watch: {
107+
state () {
108+
this.forceCollapse = null
109+
}
110+
},
111+
104112
methods: {
105113
toDisplayType (dataType, asClass) {
106114
return dataType === 'undefined'
@@ -128,6 +136,7 @@ export default {
128136
129137
setExpandToAll (value) {
130138
this.dataTypes.forEach(key => {
139+
this.forceCollapse = value ? 'expand' : 'collapse'
131140
Vue.set(this.expandedState, key, value)
132141
})
133142
}
@@ -164,6 +173,7 @@ export default {
164173
display flex
165174
align-items baseline
166175
padding-left 9px
176+
user-select none
167177
168178
.vue-ui-dark-mode &
169179
color lighten(#486887, 30%)

0 commit comments

Comments
 (0)