import UiMgr from './uiMgr'
import WebUiMgr from './webUiMgr'
import EnumRunTimePlatForm from '@/common/constants/runTimePlatform'
import UiConfig from './uiConfig'
import WxMpUiMgr from './wxMpUiMgr'
import ZfbMpUiMgr from './zfbMpUiMgr'
import { getRunTimeData } from '@/core/runTime'
import { RunTimeData } from '@/core/runTime/runTime'

function createUiMgr(uiConfig: UiConfig): UiMgr {
  let mgr!: UiMgr

  let runTimeData: RunTimeData = getRunTimeData()
  switch (runTimeData.runTimePlatform) {
    case EnumRunTimePlatForm.web:
      mgr = new WebUiMgr(uiConfig)
      break
    case EnumRunTimePlatForm.wxMp:
      mgr = new WxMpUiMgr(uiConfig)
      break
    case EnumRunTimePlatForm.zfbMp:
      mgr = new ZfbMpUiMgr(uiConfig)
      break
    default:
      break
  }

  return mgr
}
export default createUiMgr
