pleroma-fe/src/modules/config.js

61 lines
1.5 KiB
JavaScript
Raw Normal View History

import { set, delete as del } from 'vue'
import StyleSetter from '../services/style_setter/style_setter.js'
const defaultState = {
name: 'Pleroma FE',
2017-02-23 10:04:47 +11:00
colors: {},
collapseMessageWithSubject: false,
2017-02-23 10:38:05 +11:00
hideAttachments: false,
hideAttachmentsInConv: false,
hideNsfw: true,
loopVideo: true,
loopVideoSilentOnly: true,
autoLoad: true,
streaming: false,
hoverPreview: true,
pauseOnUnfocused: true,
stopGifs: false,
muteWords: [],
highlight: {}
}
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 = '') {
2017-02-19 07:43:26 +11:00
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