File tree 3 files changed +22
-7
lines changed
__tests__/client/theme-default/support
3 files changed +22
-7
lines changed Original file line number Diff line number Diff line change 1
1
import {
2
+ isSideBarEmpty ,
2
3
getSideBarConfig ,
3
4
getFlatSideBarLinks
4
5
} from 'client/theme-default/support/sideBar'
5
6
6
7
describe ( 'client/theme-default/support/sideBar' , ( ) => {
8
+ it ( 'checks if the given sidebar is empty' , ( ) => {
9
+ expect ( isSideBarEmpty ( undefined ) ) . toBe ( true )
10
+ expect ( isSideBarEmpty ( false ) ) . toBe ( true )
11
+ expect ( isSideBarEmpty ( [ ] ) ) . toBe ( true )
12
+
13
+ expect ( isSideBarEmpty ( 'auto' ) ) . toBe ( false )
14
+ expect ( isSideBarEmpty ( [ { text : 'a' , link : '/a' } ] ) ) . toBe ( false )
15
+ } )
16
+
7
17
it ( 'gets the correct sidebar items' , ( ) => {
8
18
expect ( getSideBarConfig ( false , '' ) ) . toEqual ( false )
9
19
expect ( getSideBarConfig ( 'auto' , '' ) ) . toEqual ( 'auto' )
Original file line number Diff line number Diff line change @@ -74,6 +74,7 @@ import {
74
74
usePageData ,
75
75
useSiteDataByRoute
76
76
} from ' vitepress'
77
+ import { isSideBarEmpty , getSideBarConfig } from ' ./support/sideBar'
77
78
import type { DefaultTheme } from ' ./config'
78
79
79
80
// components
@@ -127,14 +128,14 @@ const openSideBar = ref(false)
127
128
128
129
const showSidebar = computed (() => {
129
130
const { frontmatter } = route .data
131
+
132
+ if (frontmatter .home || frontmatter .sidebar === false ) {
133
+ return false
134
+ }
135
+
130
136
const { themeConfig } = siteRouteData .value
131
- return (
132
- ! frontmatter .home &&
133
- frontmatter .sidebar !== false &&
134
- ((typeof themeConfig .sidebar === ' object' &&
135
- Object .keys (themeConfig .sidebar ).length != 0 ) ||
136
- (Array .isArray (themeConfig .sidebar ) && themeConfig .sidebar .length != 0 ))
137
- )
137
+
138
+ return ! isSideBarEmpty (getSideBarConfig (themeConfig .sidebar , route .path ))
138
139
})
139
140
140
141
const toggleSidebar = (to ? : boolean ) => {
Original file line number Diff line number Diff line change @@ -13,6 +13,10 @@ export function isSideBarGroup(
13
13
return ( item as DefaultTheme . SideBarGroup ) . children !== undefined
14
14
}
15
15
16
+ export function isSideBarEmpty ( sidebar ?: DefaultTheme . SideBarConfig ) : boolean {
17
+ return isArray ( sidebar ) ? sidebar . length === 0 : ! sidebar
18
+ }
19
+
16
20
/**
17
21
* Get the `SideBarConfig` from sidebar option. This method will ensure to get
18
22
* correct sidebar config from `MultiSideBarConfig` with various path
You can’t perform that action at this time.
0 commit comments