FMHY-Website/.vitepress/theme/composables/nprogress.ts
2024-05-03 11:38:51 +06:00

30 lines
734 B
TypeScript

import { NProgress, type Configuration as NProgressConfiguration } from 'nprogress'
import type { EnhanceAppContext } from 'vitepress'
let nProgressInstance: NProgress | null = null
export function loadProgress(router: EnhanceAppContext['router']): NProgress {
if (typeof window === 'undefined') {
return {
start: () => {},
done: () => {},
configure: () => {},
} as NProgress
}
if (!nProgressInstance) {
nProgressInstance = new NProgress((config: NProgressConfiguration) => {
config.showSpinner = false
})
}
router.onBeforeRouteUpdate(() => {
nProgressInstance.start()
})
router.onAfterRouteUpdated(() => {
nProgressInstance.done()
})
return nProgressInstance
}