@@ -25,6 +25,22 @@ import draggable from 'vuedraggable'
25
25
import { mapState , mapActions } from ' vuex'
26
26
import { setSelectedElementList , deleteSelectedElement , deleteFromComponentHtmlList , setActiveHTML } from ' ../store/types'
27
27
28
+ const breadthFirstSearch = (array , id ) => {
29
+ let queue = [... array .filter (el => typeof el === ' object' )];
30
+ while (queue .length ) {
31
+ let evaluated = queue .shift ()
32
+ if (evaluated .id === id) {
33
+ return evaluated
34
+ }
35
+ else {
36
+ if (evaluated .children .length ) {
37
+ queue .push (... evaluated .children )
38
+ }
39
+ }
40
+ }
41
+ console .log (" We shouldn't be ever getting here, how did you even search an id that didn't exist?" )
42
+ }
43
+
28
44
export default {
29
45
name: ' HomeQueue' ,
30
46
props: {
@@ -41,12 +57,20 @@ export default {
41
57
// }
42
58
// },
43
59
computed: {
44
- ... mapState ([' selectedElementList' , ' componentMap' , ' activeComponent' , ' activeHTML' ]),
60
+ ... mapState ([' selectedElementList' , ' componentMap' , ' activeComponent' , ' activeHTML' , ' activeLayer ' ]),
45
61
renderList: {
46
62
get () {
47
63
if (this .activeComponent === ' ' ) return this .selectedElementList .map ((el , index ) => [el .text , index, el .id ])
48
64
// change activeComponent's htmlList into an array of arrays ([element/component name, index in state])
49
- let sortedHTML = this .componentMap [this .activeComponent ].htmlList .map ((el , index ) => [el .text , index, el .id ]).filter (el => {
65
+ if (this .activeComponent !== ' ' && this .activeLayer .id === ' ' ) {
66
+ console .log (' this works right?' )
67
+ let sortedHTML = this .componentMap [this .activeComponent ].htmlList .map ((el , index ) => [el .text , index, el .id ]).filter (el => {
68
+ return el[0 ] !== undefined
69
+ })
70
+ return sortedHTML
71
+ }
72
+ let activeElement = breadthFirstSearch (this .componentMap [this .activeComponent ].htmlList , this .activeLayer .id )
73
+ let sortedHTML = activeElement .children .map ((el , index ) => [el .text , index, el .id ]).filter (el => {
50
74
return el[0 ] !== undefined
51
75
})
52
76
return sortedHTML
0 commit comments