@@ -103,34 +103,53 @@ export default {
103103 },
104104
105105 computed: {
106- hasChildren : ({ item }) => !! ( item .children || []) .length ,
106+ hasChildren : ({ item }) => !! item .children ? .length ,
107107 isCollapsible: ({ type }) => type === ' collapsible' ,
108108 isFlyout : ({ type }) => type === ' flyout' ,
109109 },
110110
111- created () {
112- try {
113- // Attach client side only javascript.
114- if (! process .client ) return
115- if (this .isCollapsible ) {
116- delete require .cache [require .resolve (' @civictheme/uikit/components/00-base/collapsible/collapsible' )]
117- require (' @civictheme/uikit/components/00-base/collapsible/collapsible' )
118- }
111+ methods: {
112+ attachJs () {
113+ try {
114+ // Attach client side only javascript.
115+ if (! process .client ) return
116+ if (this .isCollapsible ) {
117+ delete require .cache [require .resolve (' @civictheme/uikit/components/00-base/collapsible/collapsible' )]
118+ require (' @civictheme/uikit/components/00-base/collapsible/collapsible' )
119+ }
119120
120- if (this .isFlyout ) {
121- delete require .cache [require .resolve (' @civictheme/uikit/components/00-base/flyout/flyout' )]
122- require (' @civictheme/uikit/components/00-base/flyout/flyout' )
121+ if (this .isFlyout ) {
122+ delete require .cache [require .resolve (' @civictheme/uikit/components/00-base/flyout/flyout' )]
123+ require (' @civictheme/uikit/components/00-base/flyout/flyout' )
124+ }
123125 }
124- }
125- catch (e) {
126- // eslint-disable-next-line
127- console .error (e)
126+ catch (e) {
127+ // eslint-disable-next-line
128+ console .error (e)
129+ }
130+ },
131+
132+ detachJs () {
133+ if (this .isCollapsible ) delete require .cache [require .resolve (' @civictheme/uikit/components/00-base/collapsible/collapsible' )]
134+ if (this .isFlyout ) delete require .cache [require .resolve (' @civictheme/uikit/components/00-base/flyout/flyout' )]
128135 }
129136 },
130137
138+ created () {
139+ this .attachJs ()
140+ },
141+
131142 beforeDestroy () {
132- if (this .isCollapsible ) delete require .cache [require .resolve (' @civictheme/uikit/components/00-base/collapsible/collapsible' )]
133- if (this .isFlyout ) delete require .cache [require .resolve (' @civictheme/uikit/components/00-base/flyout/flyout' )]
143+ this .detachJs ()
144+ },
145+
146+ watch: {
147+ item (to ) {
148+ if (to .children .length ) {
149+ this .detachJs ()
150+ this .attachJs ()
151+ }
152+ }
134153 }
135154}
136155 </script >
0 commit comments