Files
ALVINN_f7/src/js/store.js
Justin Georgi d2ee45c61a
All checks were successful
Build Dev PWA / Build-PWA (push) Successful in 37s
Add build info to specs page
Signed-off-by: Justin Georgi <justin.georgi@gmail.com>
2024-09-12 19:47:09 -07:00

67 lines
1.6 KiB
JavaScript

import { reactive, computed } from 'vue';
const state = reactive({
disclaimerAgreement: false,
enabledRegions: ['thorax','abdomen','limbs','head'],
regionIconSet: Math.floor(Math.random() * 3) + 1,
version: '0.5.0-alpha',
build: '####',
fullscreen: false,
useExternal: 'optional',
workersEnabled: 'true',
siteDemo: false,
externalServerList: [],
infoUrl: false
})
const set = (config, confObj) => {
if (confObj === undefined) { return }
state[config] = confObj
}
const agree = () => {
state.disclaimerAgreement = true
}
const disableWorkers = () => {
state.workersEnabled = false
}
const getServerList = () => {
if (state.useExternal == 'required') {
return state.externalServerList[0]
} else {
return state.externalServerList
}
}
const toggleFullscreen = () => {
if (document.fullscreenElement) {
document.exitFullscreen().then( () => {
state.fullscreen = false
})
} else {
app.requestFullscreen().then( () => {
state.fullscreen = true
})
}
}
export default () => ({
isAgreed: computed(() => state.disclaimerAgreement),
isFullscreen: computed(() => state.fullscreen),
demoMode: computed(() => state.siteDemo),
externalType: computed(() => state.useExternal),
useWorkers: computed(() => state.workersEnabled),
getRegions: computed(() => state.enabledRegions),
getVersion: computed(() => state.version),
getBuild: computed(() => state.build),
getIconSet: computed(() => state.regionIconSet),
getInfoUrl: computed(() => state.infoUrl),
set,
agree,
disableWorkers,
getServerList,
toggleFullscreen
})