import { reactive } from 'vue'
import { $local } from './storage'
import { appFn, appData } from './appData'
import { useTemplateMode } from './useTemplateMode'
const _modeKey = 'tiny-vue-api-mode'
const _demoModeKey = 'tiny-vue-demo-mode'
const apiModeState = reactive({
localeMode: appData.lang,
apiMode: $local[_modeKey] || 'Composition',
demoMode: $local[_demoModeKey] || 'default'
})
const { templateModeState } = useTemplateMode()
const apiModeFn = {
getDemoName: (name) => {
const isMobileFirst = templateModeState.mode === 'mobile-first'
const isOptions = apiModeState.apiMode === 'Options'
const resultName = isMobileFirst ? `mobile-first/${name}` : name
return resultName.replace(/\.vue$/, `${isOptions || isMobileFirst ? '' : '-composition-api'}.vue`)
},
changeLocaleMode: (name) => {
appFn.toggleLang(name)
},
changeApiMode: (name) => {
$local[_modeKey] = name
},
changeDemoMode: (value) => {
apiModeState.demoMode = value
$local[_demoModeKey] = value
}
}
export function useApiMode() {
return {
apiModeState,
apiModeFn
}
}