thelounge/client/js/store.js

60 lines
1.4 KiB
JavaScript
Raw Normal View History

import Vue from "vue";
import Vuex from "vuex";
const storage = require("./localStorage");
Vue.use(Vuex);
export default new Vuex.Store({
2019-02-27 15:15:34 +01:00
state: {
isConnected: false,
isNotified: false,
2019-02-27 19:15:58 +01:00
activeWindow: null,
2019-03-03 18:47:49 +01:00
sessions: [],
sidebarOpen: false,
2019-08-05 14:24:44 +02:00
sidebarDragging: false,
userlistOpen: storage.get("thelounge.state.userlist") !== "false",
2019-08-05 16:29:35 +02:00
versionData: null,
versionStatus: "loading",
versionDataExpired: false,
2019-02-27 15:15:34 +01:00
},
mutations: {
isConnected(state, payload) {
state.isConnected = payload;
},
isNotified(state, payload) {
state.isNotified = payload;
},
2019-02-27 19:15:58 +01:00
activeWindow(state, payload) {
state.activeWindow = payload;
},
currentNetworkConfig(state, payload) {
state.currentNetworkConfig = payload;
},
2019-03-03 18:47:49 +01:00
sessions(state, payload) {
state.sessions = payload;
},
sidebarOpen(state, payload) {
state.sidebarOpen = payload;
},
2019-08-05 14:24:44 +02:00
sidebarDragging(state, payload) {
state.sidebarDragging = payload;
},
userlistOpen(state, payload) {
state.userlistOpen = payload;
},
2019-08-05 16:29:35 +02:00
versionData(state, payload) {
state.versionData = payload;
},
versionStatus(state, payload) {
state.versionStatus = payload;
},
versionDataExpired(state, payload) {
state.versionDataExpired = payload;
},
2019-03-03 18:47:49 +01:00
},
getters: {
currentSession: (state) => state.sessions.find((item) => item.current),
otherSessions: (state) => state.sessions.filter((item) => !item.current),
},
});