diff --git a/packages/theme/src/client/clientAppEnhance.ts b/packages/theme/src/client/clientAppEnhance.ts index 043473dc..f0613872 100644 --- a/packages/theme/src/client/clientAppEnhance.ts +++ b/packages/theme/src/client/clientAppEnhance.ts @@ -1,14 +1,23 @@ import { defineClientAppEnhance } from '@vuepress/client' +import type { Component } from 'vue' +import { h } from 'vue' +import { useScrollPromise } from './composables' import './styles/index.scss' -export default defineClientAppEnhance(({ app }) => { +export default defineClientAppEnhance(({ app, router }) => { app.component('NavbarSearch', () => { - const SearchComponent = - app.component('Docsearch') || app.component('SearchBox') + const SearchComponent = (app.component('Docsearch') || + app.component('SearchBox')) as Component if (SearchComponent) { - return SearchComponent + return h(SearchComponent) } return null }) + + const scrollBehavior = router.options.scrollBehavior! + router.options.scrollBehavior = async (...args) => { + await useScrollPromise().wait() + return scrollBehavior(...args) + } }) diff --git a/packages/theme/src/client/components/SidebarItems.vue b/packages/theme/src/client/components/SidebarItems.vue index f2880306..12ef05d3 100644 --- a/packages/theme/src/client/components/SidebarItems.vue +++ b/packages/theme/src/client/components/SidebarItems.vue @@ -53,13 +53,6 @@ const sidebarClick = (sidebar: SidebarListComputed): void => { :class="{ line: deep === 1 }" >

- - > - { {{ sidebar.text }} +

{ color: var(--c-text); margin: 0.25rem 0; font-weight: bold; + flex: 1; &:hover { color: var(--c-text-accent); @@ -99,12 +98,13 @@ const sidebarClick = (sidebar: SidebarListComputed): void => { span { font-weight: 600; margin: 0.25rem 0; + flex: 1; } p { display: flex; align-items: center; - justify-content: flex-start; + justify-content: space-between; margin: 0; height: 40px;