mirror of
https://git.youjo.love/youjo/youjo-fe.git
synced 2025-02-01 17:09:14 +01:00
c1e4bfa90f
The locale can now be configured in settings and is stored in Vuex. The changes are applied immidiately after selection. The list of languages is taken from the messages file, which contains all the available locales (and a new value, `interfaceLanguage`, to control the translation of this option in the options menu) Closes #36
64 lines
1.6 KiB
JavaScript
64 lines
1.6 KiB
JavaScript
import { set, delete as del } from 'vue'
|
|
import StyleSetter from '../services/style_setter/style_setter.js'
|
|
|
|
const browserLocale = (window.navigator.language || 'en').split('-')[0]
|
|
|
|
const defaultState = {
|
|
name: 'Pleroma FE',
|
|
colors: {},
|
|
collapseMessageWithSubject: false,
|
|
hideAttachments: false,
|
|
hideAttachmentsInConv: false,
|
|
hideNsfw: true,
|
|
loopVideo: true,
|
|
loopVideoSilentOnly: true,
|
|
autoLoad: true,
|
|
streaming: false,
|
|
hoverPreview: true,
|
|
pauseOnUnfocused: true,
|
|
stopGifs: false,
|
|
replyVisibility: 'all',
|
|
muteWords: [],
|
|
highlight: {},
|
|
interfaceLanguage: browserLocale
|
|
}
|
|
|
|
const config = {
|
|
state: defaultState,
|
|
mutations: {
|
|
setOption (state, { name, value }) {
|
|
set(state, name, value)
|
|
},
|
|
setHighlight (state, { user, color, type }) {
|
|
const data = this.state.config.highlight[user]
|
|
if (color || type) {
|
|
set(state.highlight, user, { color: color || data.color, type: type || data.type })
|
|
} else {
|
|
del(state.highlight, user)
|
|
}
|
|
}
|
|
},
|
|
actions: {
|
|
setPageTitle ({state}, option = '') {
|
|
document.title = `${option} ${state.name}`
|
|
},
|
|
setHighlight ({ commit, dispatch }, { user, color, type }) {
|
|
commit('setHighlight', {user, color, type})
|
|
},
|
|
setOption ({ commit, dispatch }, { name, value }) {
|
|
commit('setOption', {name, value})
|
|
switch (name) {
|
|
case 'name':
|
|
dispatch('setPageTitle')
|
|
break
|
|
case 'theme':
|
|
StyleSetter.setPreset(value, commit)
|
|
break
|
|
case 'customTheme':
|
|
StyleSetter.setColors(value, commit)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
export default config
|