@@ -45,7 +45,7 @@ export function defineThemeConfig<PagePropertiesObject extends object = any>(opt
45
45
layout ?: Theme [ 'Layout' ]
46
46
slots ?: {
47
47
[ key : string ] : {
48
- node : ReturnType < typeof h >
48
+ node : Array < ( ) => Slots [ number ] >
49
49
override ?: boolean
50
50
}
51
51
}
@@ -76,19 +76,19 @@ export function defineThemeConfig<PagePropertiesObject extends object = any>(opt
76
76
const layout = options . layout ?. layout
77
77
? options . layout ?. layout
78
78
: ( ) => {
79
- const layoutTop : Slots = [ ]
79
+ const layoutTop : Array < ( ) => Slots [ number ] > = [ ]
80
80
if ( options . nolebase ?. highlightTargetedHeading ?. enable )
81
- layoutTop . push ( h ( NolebaseHighlightTargetedHeading ) )
81
+ layoutTop . push ( ( ) => h ( NolebaseHighlightTargetedHeading ) )
82
82
83
- const navBarContentAfter : Slots = [ ]
83
+ const navBarContentAfter : Array < ( ) => Slots [ number ] > = [ ]
84
84
if ( options . nolebase ?. enhancedReadabilities ?. enable )
85
- navBarContentAfter . push ( h ( NolebaseEnhancedReadabilitiesMenu ) )
85
+ navBarContentAfter . push ( ( ) => h ( NolebaseEnhancedReadabilitiesMenu ) )
86
86
87
- const navScreenContentAfter : Slots = [ ]
87
+ const navScreenContentAfter : Array < ( ) => Slots [ number ] > = [ ]
88
88
if ( options . nolebase ?. enhancedReadabilities ?. enable )
89
- navScreenContentAfter . push ( h ( NolebaseEnhancedReadabilitiesScreenMenu ) )
89
+ navScreenContentAfter . push ( ( ) => h ( NolebaseEnhancedReadabilitiesScreenMenu ) )
90
90
91
- const slots : Record < string , Slots > = {
91
+ const slots : Record < string , Array < ( ) => Slots [ number ] > > = {
92
92
'layout-top' : [
93
93
...layoutTop ,
94
94
] ,
@@ -102,11 +102,16 @@ export function defineThemeConfig<PagePropertiesObject extends object = any>(opt
102
102
103
103
if ( options . layout ?. slots ) {
104
104
for ( const [ key , value ] of Object . entries ( options . layout . slots ) ) {
105
- slots [ key ] = value . override
106
- ? [ value . node ]
107
- : slots [ key ]
108
- ? [ ...slots [ key ] , value . node ]
109
- : [ value . node ]
105
+ if ( value . override ) {
106
+ slots [ key ] = value . node
107
+ continue
108
+ }
109
+ if ( slots [ key ] ) {
110
+ slots [ key ] = [ ...slots [ key ] , ...value . node ]
111
+ continue
112
+ }
113
+
114
+ slots [ key ] . push ( ...value . node )
110
115
}
111
116
}
112
117
@@ -117,9 +122,9 @@ export function defineThemeConfig<PagePropertiesObject extends object = any>(opt
117
122
Object
118
123
. entries ( slots )
119
124
. map ( ( [ key , value ] ) => {
120
- return [ key , ( ) => value ]
125
+ return [ key , ( ) => value . map ( v => v ( ) ) ]
121
126
} ) ,
122
- ) ,
127
+ ) as Record < string , ( ) => Slots > ,
123
128
)
124
129
}
125
130
0 commit comments