@@ -45,22 +45,20 @@ export function initSlots(
45
45
// with ctx
46
46
const slots = rawSlots [ 0 ] as StaticSlots
47
47
for ( const name in slots ) {
48
- resolveSlot ( name , slots [ name ] )
48
+ addSlot ( name , slots [ name ] )
49
49
}
50
50
return
51
51
}
52
52
53
53
instance . slots = shallowReactive ( { } )
54
54
const renderedSlotKeys : Set < string > [ ] = [ ]
55
- const slotsQueue : Record < string , [ number , Slot ] [ ] > = { }
55
+ const slotsQueue : Record < string , [ level : number , slot : Slot ] [ ] > = { }
56
56
rawSlots . forEach ( ( slots , index ) => {
57
57
const isDynamicSlot = isDynamicSlotFn ( slots )
58
58
if ( isDynamicSlot ) {
59
59
firstEffect ( instance , ( ) => {
60
- const renderedKeys =
61
- renderedSlotKeys [ index ] || ( renderedSlotKeys [ index ] = new Set ( ) )
62
- let dynamicSlot : ReturnType < DynamicSlotFn >
63
- dynamicSlot = slots ( )
60
+ const renderedKeys = ( renderedSlotKeys [ index ] ||= new Set ( ) )
61
+ let dynamicSlot = slots ( )
64
62
const restoreSlotNames = cleanupSlot ( index )
65
63
if ( isArray ( dynamicSlot ) ) {
66
64
for ( const slot of dynamicSlot ) {
@@ -74,7 +72,7 @@ export function initSlots(
74
72
const [ restoreLevel , restoreFn ] = slotsQueue [ key ] [ 0 ]
75
73
renderedSlotKeys [ restoreLevel ] &&
76
74
renderedSlotKeys [ restoreLevel ] . add ( key )
77
- resolveSlot ( key , restoreFn )
75
+ addSlot ( key , restoreFn )
78
76
}
79
77
}
80
78
for ( const name of renderedKeys ) {
@@ -116,12 +114,12 @@ export function initSlots(
116
114
117
115
function registerSlot (
118
116
name : string ,
119
- fn : Slot ,
117
+ slot : Slot ,
120
118
level : number ,
121
119
renderedKeys ?: Set < string > ,
122
120
) {
123
- slotsQueue [ name ] = slotsQueue [ name ] || [ ]
124
- slotsQueue [ name ] . push ( [ level , fn ] )
121
+ slotsQueue [ name ] ||= [ ]
122
+ slotsQueue [ name ] . push ( [ level , slot ] )
125
123
slotsQueue [ name ] . sort ( ( a , b ) => b [ 0 ] - a [ 0 ] )
126
124
if ( slotsQueue [ name ] [ 1 ] ) {
127
125
const hidenLevel = slotsQueue [ name ] [ 1 ] [ 0 ]
@@ -130,10 +128,10 @@ export function initSlots(
130
128
if ( slotsQueue [ name ] [ 0 ] [ 0 ] === level ) {
131
129
renderedKeys && renderedKeys . add ( name )
132
130
}
133
- resolveSlot ( name , slotsQueue [ name ] [ 0 ] [ 1 ] )
131
+ addSlot ( name , slotsQueue [ name ] [ 0 ] [ 1 ] )
134
132
}
135
133
136
- function resolveSlot ( name : string , fn : Slot ) {
134
+ function addSlot ( name : string , fn : Slot ) {
137
135
instance . slots [ name ] = withCtx ( fn )
138
136
}
139
137
0 commit comments