import music from '../utils/music' import { themes, windowSizeList, themeShouldUseDarkColors } from '@renderer/core/share' export default { theme(state) { const themeId = state.setting.theme.id == 'auto' ? themeShouldUseDarkColors.value ? state.setting.theme.darkId : state.setting.theme.lightId : state.setting.theme.id let theme = themes.find(theme => theme.id == themeId) ?? themes[0] return theme.className }, font(state) { return state.setting.font }, themes(state) { return { active: state.setting.theme.id, lightId: state.setting.theme.lightId, darkId: state.setting.theme.darkId, list: themes, } }, source(state) { const source = music.sources.find(s => s.id === state.setting.sourceId) || music.sources[0] return source }, sources(state) { return { active: state.setting.sourceId, list: music.sources, } }, sourceNames(state) { let prefix = 'source_' if (state.setting.sourceNameType == 'alias') prefix += 'alias_' const sources = {} for (const source of music.sources) { sources[source.id] = window.i18n.t(prefix + source.id) } sources.all = window.i18n.t(prefix + 'all') return sources }, userInfo(state) { return state.userInfo }, setting(state) { return state.setting }, settingVersion(state) { return state.settingVersion }, version(state) { return state.version }, route(state) { return state.route }, windowSizeList() { return windowSizeList }, windowSizeActive(state) { return windowSizeList.find(i => i.id === state.setting.windowSizeId) || windowSizeList[0] }, pactModalVisible(state) { return !state.setting.isAgreePact }, isShowAnimation(state) { return state.setting.isShowAnimation }, playDetailSetting(state) { return state.setting.playDetail }, }