akkoma-fe/src/modules/instance.js

84 lines
2 KiB
JavaScript
Raw Normal View History

2018-09-09 18:21:23 +00:00
import { set } from 'vue'
2018-11-19 17:22:46 +00:00
import { setPreset } from '../services/style_setter/style_setter.js'
2018-09-09 18:21:23 +00:00
const defaultState = {
// Stuff from static/config.json and apiConfig
2018-09-09 18:21:23 +00:00
name: 'Pleroma FE',
registrationOpen: true,
textlimit: 5000,
server: 'http://localhost:4040/',
theme: 'pleroma-dark',
background: '/static/aurora_borealis.jpg',
2018-09-09 18:21:23 +00:00
logo: '/static/logo.png',
logoMask: true,
logoMargin: '.2em',
redirectRootNoLogin: '/main/all',
redirectRootLogin: '/main/friends',
2018-09-09 18:21:23 +00:00
showInstanceSpecificPanel: false,
scopeOptionsEnabled: true,
formattingOptionsEnabled: false,
alwaysShowSubjectInput: true,
2018-09-09 18:21:23 +00:00
collapseMessageWithSubject: false,
hidePostStats: false,
hideUserStats: false,
2019-02-21 17:52:58 +00:00
hideFilteredStatuses: false,
2018-09-09 18:21:23 +00:00
disableChat: false,
2018-09-25 12:16:26 +00:00
scopeCopy: true,
2018-09-25 11:47:02 +00:00
subjectLineBehavior: 'email',
postContentType: 'text/plain',
2018-11-07 15:56:12 +00:00
loginMethod: 'password',
2018-12-13 17:41:01 +00:00
nsfwCensorImage: undefined,
vapidPublicKey: undefined,
noAttachmentLinks: false,
2019-02-08 21:20:47 +00:00
showFeaturesPanel: true,
2018-09-09 18:21:23 +00:00
// Nasty stuff
pleromaBackend: true,
emoji: [],
2018-09-09 18:21:23 +00:00
customEmoji: [],
restrictedNicknames: [],
postFormats: [],
// Feature-set, apparently, not everything here is reported...
mediaProxyAvailable: false,
chatAvailable: false,
gopherAvailable: false,
suggestionsEnabled: false,
suggestionsWeb: '',
2018-09-09 18:21:23 +00:00
// Html stuff
instanceSpecificPanelContent: '',
tos: '',
// Version Information
backendVersion: '',
frontendVersion: ''
2018-09-09 18:21:23 +00:00
}
const instance = {
state: defaultState,
mutations: {
setInstanceOption (state, { name, value }) {
if (typeof value !== 'undefined') {
set(state, name, value)
}
2018-09-09 18:21:23 +00:00
}
},
actions: {
setInstanceOption ({ commit, dispatch }, { name, value }) {
commit('setInstanceOption', {name, value})
switch (name) {
case 'name':
dispatch('setPageTitle')
break
}
},
setTheme ({ commit }, themeName) {
commit('setInstanceOption', { name: 'theme', value: themeName })
return setPreset(themeName, commit)
2018-09-09 18:21:23 +00:00
}
}
}
export default instance