main.ts 923 B

123456789101112131415161718192021222324252627282930313233343536
  1. import { useSettingsStore } from '@/pinia'
  2. import { autoAnimatePlugin } from '@formkit/auto-animate/vue'
  3. import { createPinia } from 'pinia'
  4. import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'
  5. import { createApp } from 'vue'
  6. import VueDOMPurifyHTML from 'vue-dompurify-html'
  7. import App from './App.vue'
  8. import gettext from './gettext'
  9. import router from './routes'
  10. import 'virtual:uno.css'
  11. const pinia = createPinia()
  12. const app = createApp(App)
  13. pinia.use(piniaPluginPersistedstate)
  14. app.use(pinia)
  15. app.use(gettext)
  16. app.use(VueDOMPurifyHTML, {
  17. hooks: {
  18. uponSanitizeElement: (node, data) => {
  19. if (node.tagName && node.tagName.toLowerCase() === 'think') {
  20. data.allowedTags.think = true
  21. }
  22. },
  23. },
  24. })
  25. // after pinia created
  26. const settings = useSettingsStore()
  27. gettext.current = settings.language || 'en'
  28. app.use(router).use(autoAnimatePlugin).mount('#app')
  29. export default app