@@ -112,14 +112,14 @@ const draggableComponent = defineComponent({
112
112
render ( ) {
113
113
const { $slots, $attrs, tag, componentData } = this ;
114
114
const renderContext = computeRenderContext ( { $slots, tag } ) ;
115
- this . transitionMode = isTransition ( renderContext . nodes . default ) ;
116
- this . headerOffset = renderContext . offsets . header ;
117
- this . footerOffset = renderContext . offsets . footer ;
118
- this . defaultSlots = renderContext . nodes . default ;
119
115
const attributes = getComponentAttributes ( { $attrs, componentData } ) ;
120
116
121
117
const mainNode = h ( renderContext . tag , attributes , renderContext . children ) ;
122
- this . mainNode = mainNode ;
118
+
119
+ this . renderContext = renderContext ;
120
+ this . transitionMode = isTransition ( renderContext . nodes . default ) ;
121
+ this . noneFunctionalComponentMode =
122
+ renderContext . externalComponent && typeof mainNode . type !== "function" ;
123
123
return mainNode ;
124
124
} ,
125
125
@@ -132,11 +132,14 @@ const draggableComponent = defineComponent({
132
132
} ,
133
133
134
134
mounted ( ) {
135
- const { tag, $attrs, rootContainer } = this ;
136
- this . noneFunctionalComponentMode =
137
- tag . toLowerCase ( ) !== this . $el . nodeName . toLowerCase ( ) &&
138
- ! this . getIsFunctional ( ) ;
139
- if ( this . noneFunctionalComponentMode && this . transitionMode ) {
135
+ const {
136
+ tag,
137
+ $attrs,
138
+ rootContainer,
139
+ noneFunctionalComponentMode,
140
+ transitionMode
141
+ } = this ;
142
+ if ( noneFunctionalComponentMode && transitionMode ) {
140
143
throw new Error (
141
144
`Transition-group inside component is not supported. Please alter tag value or remove transition-group. Current tag value: ${ tag } `
142
145
) ;
@@ -207,16 +210,18 @@ const draggableComponent = defineComponent({
207
210
const {
208
211
noneFunctionalComponentMode,
209
212
transitionMode,
210
- defaultSlots
213
+ renderContext : {
214
+ nodes : { default : defaultNodes }
215
+ }
211
216
} = this ;
212
217
if ( noneFunctionalComponentMode ) {
213
218
//TODO check
214
- return defaultSlots [ 0 ] . children ;
219
+ return defaultNodes [ 0 ] . children ;
215
220
//return this.$children[0].$slots.default();
216
221
}
217
222
218
223
if ( transitionMode ) {
219
- const [ { children } ] = defaultSlots ;
224
+ const [ { children } ] = defaultNodes ;
220
225
if ( Array . isArray ( children ) ) {
221
226
return children ;
222
227
}
@@ -225,9 +230,9 @@ const draggableComponent = defineComponent({
225
230
. filter ( node => ! ! node . transition ) ;
226
231
}
227
232
228
- return defaultSlots . length === 1 && defaultSlots [ 0 ] . el . nodeType === 3
229
- ? defaultSlots [ 0 ] . children
230
- : defaultSlots ;
233
+ return defaultNodes . length === 1 && defaultNodes [ 0 ] . el . nodeType === 3
234
+ ? defaultNodes [ 0 ] . children
235
+ : defaultNodes ;
231
236
} ,
232
237
233
238
computeIndexes ( ) {
@@ -236,7 +241,7 @@ const draggableComponent = defineComponent({
236
241
this . getChildrenNodes ( ) ,
237
242
this . rootContainer . children ,
238
243
this . transitionMode ,
239
- this . footerOffset
244
+ this . renderContext . offsets . footer
240
245
) ;
241
246
} ) ;
242
247
} ,
0 commit comments