Skip to content

Commit 9975ad4

Browse files
committedJan 18, 2025·
fix(theme-default): revert to page data header because of vuepress/core#1627
1 parent 7c5daab commit 9975ad4

File tree

3 files changed

+15
-20
lines changed

3 files changed

+15
-20
lines changed
 

‎themes/theme-default/src/client/composables/useHeaders.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,6 @@ export const setupHeaders = (): void => {
4848
provideLocal(headersSymbol, headersRef)
4949

5050
onMounted(() => {
51-
watchImmediate(() => [levels, routePath], updateHeaders)
51+
watchImmediate([levels, routePath], updateHeaders)
5252
})
5353
}

‎themes/theme-default/src/client/composables/useSidebarItems.ts

+14-17
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
import { resolveAutoLink } from '@theme/resolveAutoLink'
22
import { resolvePrefix } from '@theme/resolvePrefix'
3-
import { useHeaders } from '@theme/useHeaders'
43
import { useThemeLocaleData } from '@theme/useThemeData'
5-
import type { HeaderItem } from '@vuepress/helper/client'
64
import { isLinkRelative, keys, startsWith } from '@vuepress/helper/client'
75
import type { ComputedRef, InjectionKey } from 'vue'
86
import { computed, inject, provide } from 'vue'
9-
import type { PageData } from 'vuepress/client'
7+
import type { PageData, PageHeader } from 'vuepress/client'
108
import {
119
usePageData,
1210
usePageFrontmatter,
@@ -27,30 +25,30 @@ import type { SidebarHeaderItem, SidebarItem } from '../typings.js'
2725
/**
2826
* Util to transform page header to sidebar item
2927
*/
30-
export const resolveSidebarHeaderItem = (
31-
header: HeaderItem,
28+
export const resolveSidebarPageHeader = (
29+
header: PageHeader,
3230
): SidebarHeaderItem => ({
3331
text: header.title,
3432
link: header.link,
3533
// eslint-disable-next-line @typescript-eslint/no-use-before-define
36-
children: resolveSidebarHeaderItems(header.children),
34+
children: resolveSidebarPageHeaders(header.children),
3735
})
3836

39-
export const resolveSidebarHeaderItems = (
40-
headers?: HeaderItem[],
37+
export const resolveSidebarPageHeaders = (
38+
headers?: PageHeader[],
4139
): SidebarHeaderItem[] =>
42-
headers ? headers.map((header) => resolveSidebarHeaderItem(header)) : []
40+
headers ? headers.map((header) => resolveSidebarPageHeader(header)) : []
4341

4442
/**
4543
* Resolve current page and its header to sidebar items if the config is `heading`
4644
*/
4745
export const resolveSidebarHeadingItem = (
4846
page: PageData,
49-
headers: HeaderItem[],
47+
headers: PageHeader[],
5048
): SidebarItem[] => [
5149
{
5250
text: page.title,
53-
children: resolveSidebarHeaderItems(headers),
51+
children: resolveSidebarPageHeaders(headers),
5452
},
5553
]
5654

@@ -59,7 +57,7 @@ export const resolveSidebarHeadingItem = (
5957
*/
6058
export const resolveArraySidebarItems = (
6159
sidebarConfig: SidebarArrayOptions,
62-
headers: HeaderItem[],
60+
headers: PageHeader[],
6361
path: string,
6462
prefix = '',
6563
): SidebarItem[] => {
@@ -96,7 +94,7 @@ export const resolveArraySidebarItems = (
9694

9795
return {
9896
...childItem,
99-
children: resolveSidebarHeaderItems(currentHeaders),
97+
children: resolveSidebarPageHeaders(currentHeaders),
10098
}
10199
}
102100

@@ -112,7 +110,7 @@ export const resolveArraySidebarItems = (
112110
export const resolveMultiSidebarItems = (
113111
sidebarConfig: SidebarObjectOptions,
114112
page: PageData,
115-
headers: HeaderItem[],
113+
headers: PageHeader[],
116114
path: string,
117115
): SidebarItem[] => {
118116
const sidebarRoutes = keys(sidebarConfig).sort((x, y) => y.length - x.length)
@@ -161,7 +159,7 @@ export const resolveSidebarItems = (
161159
page: PageData,
162160
path: string,
163161
routeLocale: string,
164-
headers: HeaderItem[],
162+
headers: PageHeader[],
165163
): SidebarItem[] => {
166164
// resolve sidebar items according to the config
167165
if (sidebarConfig === false) {
@@ -194,7 +192,6 @@ export const setupSidebarItems = (): void => {
194192
const page = usePageData()
195193
const route = useRoute()
196194
const routeLocale = useRouteLocale()
197-
const headers = useHeaders()
198195

199196
const sidebarConfig = computed<SidebarOptions | false>(() =>
200197
frontmatter.value.home
@@ -210,7 +207,7 @@ export const setupSidebarItems = (): void => {
210207
page.value,
211208
route.path,
212209
routeLocale.value,
213-
headers.value,
210+
page.value.headers,
214211
),
215212
)
216213
provide(sidebarItemsSymbol, sidebarItems)

‎themes/theme-default/src/client/config.ts

-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { setupDarkMode } from '@theme/useDarkMode'
2-
import { setupHeaders } from '@theme/useHeaders'
32
import { useScrollPromise } from '@theme/useScrollPromise'
43
import { setupSidebarItems } from '@theme/useSidebarItems'
54
import { hasGlobalComponent } from '@vuepress/helper/client'
@@ -26,7 +25,6 @@ export default defineClientConfig({
2625

2726
setup() {
2827
setupDarkMode()
29-
setupHeaders()
3028
setupSidebarItems()
3129
},
3230

0 commit comments

Comments
 (0)
Please sign in to comment.