69 lines
1.5 KiB
JavaScript
69 lines
1.5 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: "",
|
|
disableStream: false,
|
|
autoGpuPreview: false,
|
|
trackWindow: true,
|
|
IHIEnabled: false,
|
|
appTheme: "system",
|
|
activeStreams: {}
|
|
},
|
|
|
|
mutations: {
|
|
changeOrigin(state, origin) {
|
|
state.origin = origin;
|
|
},
|
|
changeWaiting(state, waiting) {
|
|
state.waiting = waiting;
|
|
},
|
|
changeDisableStream(state, disabled) {
|
|
state.disableStream = disabled;
|
|
},
|
|
changeAutoGpuPreview(state, enabled) {
|
|
state.autoGpuPreview = enabled;
|
|
},
|
|
changeTrackWindow(state, enabled) {
|
|
state.trackWindow = enabled;
|
|
},
|
|
changeAppTheme(state, theme) {
|
|
state.appTheme = theme;
|
|
},
|
|
changeIHIEnabled(state, enabled) {
|
|
state.IHIEnabled = enabled;
|
|
},
|
|
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
|
|
}
|
|
});
|