1
1
import { resolveAutoLink } from '@theme/resolveAutoLink'
2
2
import { resolvePrefix } from '@theme/resolvePrefix'
3
- import { useHeaders } from '@theme/useHeaders'
4
3
import { useThemeLocaleData } from '@theme/useThemeData'
5
- import type { HeaderItem } from '@vuepress/helper/client'
6
4
import { isLinkRelative , keys , startsWith } from '@vuepress/helper/client'
7
5
import type { ComputedRef , InjectionKey } from 'vue'
8
6
import { computed , inject , provide } from 'vue'
9
- import type { PageData } from 'vuepress/client'
7
+ import type { PageData , PageHeader } from 'vuepress/client'
10
8
import {
11
9
usePageData ,
12
10
usePageFrontmatter ,
@@ -27,30 +25,30 @@ import type { SidebarHeaderItem, SidebarItem } from '../typings.js'
27
25
/**
28
26
* Util to transform page header to sidebar item
29
27
*/
30
- export const resolveSidebarHeaderItem = (
31
- header : HeaderItem ,
28
+ export const resolveSidebarPageHeader = (
29
+ header : PageHeader ,
32
30
) : SidebarHeaderItem => ( {
33
31
text : header . title ,
34
32
link : header . link ,
35
33
// eslint-disable-next-line @typescript-eslint/no-use-before-define
36
- children : resolveSidebarHeaderItems ( header . children ) ,
34
+ children : resolveSidebarPageHeaders ( header . children ) ,
37
35
} )
38
36
39
- export const resolveSidebarHeaderItems = (
40
- headers ?: HeaderItem [ ] ,
37
+ export const resolveSidebarPageHeaders = (
38
+ headers ?: PageHeader [ ] ,
41
39
) : SidebarHeaderItem [ ] =>
42
- headers ? headers . map ( ( header ) => resolveSidebarHeaderItem ( header ) ) : [ ]
40
+ headers ? headers . map ( ( header ) => resolveSidebarPageHeader ( header ) ) : [ ]
43
41
44
42
/**
45
43
* Resolve current page and its header to sidebar items if the config is `heading`
46
44
*/
47
45
export const resolveSidebarHeadingItem = (
48
46
page : PageData ,
49
- headers : HeaderItem [ ] ,
47
+ headers : PageHeader [ ] ,
50
48
) : SidebarItem [ ] => [
51
49
{
52
50
text : page . title ,
53
- children : resolveSidebarHeaderItems ( headers ) ,
51
+ children : resolveSidebarPageHeaders ( headers ) ,
54
52
} ,
55
53
]
56
54
@@ -59,7 +57,7 @@ export const resolveSidebarHeadingItem = (
59
57
*/
60
58
export const resolveArraySidebarItems = (
61
59
sidebarConfig : SidebarArrayOptions ,
62
- headers : HeaderItem [ ] ,
60
+ headers : PageHeader [ ] ,
63
61
path : string ,
64
62
prefix = '' ,
65
63
) : SidebarItem [ ] => {
@@ -96,7 +94,7 @@ export const resolveArraySidebarItems = (
96
94
97
95
return {
98
96
...childItem ,
99
- children : resolveSidebarHeaderItems ( currentHeaders ) ,
97
+ children : resolveSidebarPageHeaders ( currentHeaders ) ,
100
98
}
101
99
}
102
100
@@ -112,7 +110,7 @@ export const resolveArraySidebarItems = (
112
110
export const resolveMultiSidebarItems = (
113
111
sidebarConfig : SidebarObjectOptions ,
114
112
page : PageData ,
115
- headers : HeaderItem [ ] ,
113
+ headers : PageHeader [ ] ,
116
114
path : string ,
117
115
) : SidebarItem [ ] => {
118
116
const sidebarRoutes = keys ( sidebarConfig ) . sort ( ( x , y ) => y . length - x . length )
@@ -161,7 +159,7 @@ export const resolveSidebarItems = (
161
159
page : PageData ,
162
160
path : string ,
163
161
routeLocale : string ,
164
- headers : HeaderItem [ ] ,
162
+ headers : PageHeader [ ] ,
165
163
) : SidebarItem [ ] => {
166
164
// resolve sidebar items according to the config
167
165
if ( sidebarConfig === false ) {
@@ -194,7 +192,6 @@ export const setupSidebarItems = (): void => {
194
192
const page = usePageData ( )
195
193
const route = useRoute ( )
196
194
const routeLocale = useRouteLocale ( )
197
- const headers = useHeaders ( )
198
195
199
196
const sidebarConfig = computed < SidebarOptions | false > ( ( ) =>
200
197
frontmatter . value . home
@@ -210,7 +207,7 @@ export const setupSidebarItems = (): void => {
210
207
page . value ,
211
208
route . path ,
212
209
routeLocale . value ,
213
- headers . value ,
210
+ page . value . headers ,
214
211
) ,
215
212
)
216
213
provide ( sidebarItemsSymbol , sidebarItems )
0 commit comments