55 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
import { createI18n } from 'vue-i18n'
 | 
						|
 | 
						|
import DefaultTheme from 'vitepress/theme'
 | 
						|
import en from '../../../src/locales/en_US.json'
 | 
						|
 | 
						|
import Theme from './Theme.vue'
 | 
						|
 | 
						|
import { createRouter, createWebHistory } from 'vue-router'
 | 
						|
 | 
						|
import routesV2 from '../../../src/ui/routes'
 | 
						|
 | 
						|
const routes = routesV2
 | 
						|
 | 
						|
export default {
 | 
						|
  ...DefaultTheme,
 | 
						|
  Theme: Theme,
 | 
						|
  enhanceApp({ app }) {
 | 
						|
    const i18n = createI18n({
 | 
						|
      legacy: false,
 | 
						|
      locale: 'en',
 | 
						|
      fallbackLocale: 'en',
 | 
						|
      messages: { en }
 | 
						|
    })
 | 
						|
 | 
						|
    const router = createRouter({
 | 
						|
      history: createWebHistory('/'),
 | 
						|
      linkActiveClass: 'active',
 | 
						|
      routes,
 | 
						|
 | 
						|
      scrollBehavior (to, _, savedPosition) {
 | 
						|
        if (to.meta.preserveScrollPosition) {
 | 
						|
          return savedPosition ?? { left: 0, top: 0 }
 | 
						|
        }
 | 
						|
 | 
						|
        return new Promise(resolve => {
 | 
						|
          setTimeout(() => {
 | 
						|
            if (to.hash) {
 | 
						|
              resolve({ el: to.hash, behavior: 'smooth' })
 | 
						|
            }
 | 
						|
 | 
						|
            resolve(savedPosition ?? { left: 0, top: 0 })
 | 
						|
          }, 100)
 | 
						|
        })
 | 
						|
      }
 | 
						|
    })
 | 
						|
 | 
						|
    // Simsalabim: Incantation for a confused i18n... Thank you s-ol https://github.com/vikejs/vike/discussions/1778#discussioncomment-10192261
 | 
						|
    if (!('__VUE_PROD_DEVTOOLS__' in globalThis)) {
 | 
						|
      (globalThis as any).__VUE_PROD_DEVTOOLS__ = false;
 | 
						|
    }
 | 
						|
    app.use(i18n)
 | 
						|
    app.use(router)
 | 
						|
  }
 | 
						|
}
 |