import { createSSRApp } from 'vue'
import App from './App.vue'
import { prototypeInterceptor, requestInterceptor, routeInterceptor } from './interceptors'
import i18n from './locale/index'
import i18nHelpers from './plugins/i18n-helpers'
import store from './store'
import '@/style/index.scss'
import 'virtual:uno.css'

uni.$zp = {
  config: {
    // 配置分页默认pageSize为20
    'default-page-size': 20,
    'refresher-default-text': {
      'en': 'Pull down to refresh',
      'zh-Hans': '继续下拉刷新',
      'bn': 'রিফ্রেশ করতে নিচে টানুন',
    },
    'refresher-pulling-text': {
      'en': 'Release to refresh',
      'zh-Hans': '松开立即刷新',
      'bn': 'রিফ্রেশ করতে ছেড়ে দিন',
    },
    'refresher-refreshing-text': {
      'en': 'Refreshing...',
      'zh-Hans': '正在刷新...',
      'bn': 'রিফ্রেশ হচ্ছে...',
    },
    'refresher-complete-text': {
      'en': 'Refresh succeeded',
      'zh-Hans': '刷新成功',
      'bn': 'রিফ্রেশ সফল হয়েছে',
    },
    'loading-more-default-text': {
      'en': 'Click to load more',
      'zh-Hans': '点击加载更多',
      'bn': 'আরও লোড করতে ক্লিক করুন',
    },
    'loading-more-loading-text': {
      'en': 'Loading...',
      'zh-Hans': '正在加载...',
      'bn': 'লোড হচ্ছে...',
    },
    'loading-more-no-more-text': {
      'en': 'No more data',
      'zh-Hans': '没有更多了',
      'bn': 'আর কোনো ডেটা নেই',
    },
    'loading-more-fail-text': {
      'en': 'Load failed,click to reload',
      'zh-Hans': '加载失败，点击重新加载',
      'bn': 'লোড ব্যর্থ, আবার লোড করতে ক্লিক করুন',
    },
    'empty-view-text': {
      'en': 'No data',
      'zh-Hans': '没有数据哦~',
      'bn': 'কোনো ডেটা নেই',
    },
    'empty-view-reload-text': {
      'en': 'Reload',
      'zh-Hans': '重新加载',
      'bn': 'আবার লোড করুন',
    },
    'empty-view-error-text': {
      'en': 'Sorry,load failed',
      'zh-Hans': '很抱歉，加载失败',
      'bn': 'দুঃখিত, লোড ব্যর্থ হয়েছে',
    },
  },
}

export function createApp() {
  const app = createSSRApp(App)
  app.use(store)
  app.use(i18n)
  app.use(i18nHelpers)
  app.use(routeInterceptor)
  app.use(requestInterceptor)
  app.use(prototypeInterceptor)

  return {
    app,
  }
}
