@@ -122,10 +122,16 @@ export function pageSidebar(context: DefaultThemeRenderContext, props: PageEvent
122
122
export function pageNavigation ( context : DefaultThemeRenderContext , props : PageEvent < Reflection > ) {
123
123
const levels : JSX . Element [ ] [ ] = [ [ ] ] ;
124
124
125
- function finalizeLevel ( ) {
125
+ function finalizeLevel ( finishedHandlingHeadings : boolean ) {
126
+ const level = levels . pop ( ) ! ;
127
+ if ( levels [ levels . length - 1 ] . length === 0 && finishedHandlingHeadings ) {
128
+ levels [ levels . length - 1 ] = level ;
129
+ return ;
130
+ }
131
+
126
132
const built = (
127
133
< ul >
128
- { levels . pop ( ) ! . map ( ( l ) => (
134
+ { level . map ( ( l ) => (
129
135
< li > { l } </ li >
130
136
) ) }
131
137
</ ul >
@@ -136,9 +142,9 @@ export function pageNavigation(context: DefaultThemeRenderContext, props: PageEv
136
142
for ( const heading of props . pageHeadings ) {
137
143
const inferredLevel = heading . level ? heading . level + 1 : 1 ;
138
144
while ( inferredLevel < levels . length ) {
139
- finalizeLevel ( ) ;
145
+ finalizeLevel ( false ) ;
140
146
}
141
- if ( inferredLevel > levels . length ) {
147
+ while ( inferredLevel > levels . length ) {
142
148
// Lower level than before
143
149
levels . push ( [ ] ) ;
144
150
}
@@ -152,13 +158,16 @@ export function pageNavigation(context: DefaultThemeRenderContext, props: PageEv
152
158
}
153
159
154
160
while ( levels . length > 1 ) {
155
- finalizeLevel ( ) ;
161
+ finalizeLevel ( true ) ;
156
162
}
157
163
158
164
if ( ! levels [ 0 ] . length ) {
159
165
return < > </ > ;
160
166
}
161
167
168
+ levels . unshift ( [ ] ) ;
169
+ finalizeLevel ( true ) ;
170
+
162
171
return (
163
172
< details open = { true } class = "tsd-index-accordion tsd-page-navigation" >
164
173
< summary class = "tsd-accordion-summary" >
@@ -167,13 +176,7 @@ export function pageNavigation(context: DefaultThemeRenderContext, props: PageEv
167
176
On This Page
168
177
</ h3 >
169
178
</ summary >
170
- < div class = "tsd-accordion-details" >
171
- < ul >
172
- { levels [ 0 ] . map ( ( l ) => (
173
- < li > { l } </ li >
174
- ) ) }
175
- </ ul >
176
- </ div >
179
+ < div class = "tsd-accordion-details" > { levels [ 0 ] } </ div >
177
180
</ details >
178
181
) ;
179
182
}
0 commit comments