58 lines
1.2 KiB
JavaScript
58 lines
1.2 KiB
JavaScript
import Vue from "vue";
|
|
import Vuex from "vuex";
|
|
|
|
Vue.use(Vuex);
|
|
|
|
export default new Vuex.Store({
|
|
state: {
|
|
origin: window.location.origin,
|
|
available: false,
|
|
waiting: false,
|
|
error: "",
|
|
globalSettings: {
|
|
disableStream: false,
|
|
autoGpuPreview: false,
|
|
trackWindow: true,
|
|
appTheme: "system"
|
|
},
|
|
activeStreams: {}
|
|
},
|
|
|
|
mutations: {
|
|
changeOrigin(state, origin) {
|
|
state.origin = origin;
|
|
},
|
|
changeWaiting(state, waiting) {
|
|
state.waiting = waiting;
|
|
},
|
|
changeSetting(state, [key, value]) {
|
|
state.globalSettings[key] = value;
|
|
},
|
|
resetState(state) {
|
|
state.waiting = false;
|
|
state.available = false;
|
|
state.error = null;
|
|
},
|
|
setConnected(state) {
|
|
state.waiting = false;
|
|
state.available = true;
|
|
},
|
|
setErrorMessage(state, msg) {
|
|
state.error = msg;
|
|
},
|
|
addStream(state, id) {
|
|
state.activeStreams[id] = true;
|
|
},
|
|
removeStream(state, id) {
|
|
state.activeStreams[id] = false;
|
|
}
|
|
},
|
|
|
|
actions: {},
|
|
|
|
getters: {
|
|
uriV2: state => `${state.origin}/api/v2`,
|
|
baseUri: state => state.origin,
|
|
ready: state => state.available
|
|
}
|
|
});
|