souvenir/src/store.js

66 lines
1.6 KiB
JavaScript
Raw Normal View History

2021-10-14 02:18:34 +02:00
import { createStore } from 'vuex'
import { getCamera } from '~/src/services/camera.js'
2019-03-08 23:17:59 +01:00
2021-10-14 02:18:34 +02:00
export default createStore({
2019-03-12 10:34:41 +01:00
strict: process.env.NODE_ENV !== 'production',
2021-10-14 02:18:34 +02:00
state () {
return {
cameraShouldFaceUser: true,
duration: {
selected: 2,
list: [2, 3, 5]
},
boomerang: false,
timer: 0,
camera: null,
capture: null,
gif: null,
needRefresh: false
}
2019-03-08 23:17:59 +01:00
},
mutations: {
updateCameraShouldFaceUser (state, cameraShouldFaceUser) {
state.cameraShouldFaceUser = cameraShouldFaceUser
2019-03-09 22:54:07 +01:00
},
2019-03-29 17:17:42 +01:00
updateDuration (state, time) {
state.duration.selected = time
},
updateBoomerang (state, value) {
state.boomerang = value
2019-03-10 00:14:30 +01:00
},
updateTimer (state, value) {
state.timer = value
},
updateCamera (state, camera) {
if (state.camera) {
state.camera.mediaStream.getTracks().forEach(track => track.stop())
2019-03-10 23:35:26 +01:00
}
state.camera = camera
},
updateCapture (state, capture) {
state.capture = capture
},
updateGif (state, gif) {
state.gif = gif
},
updateRefreshBanner (state, value) {
state.needRefresh = value
2019-03-09 22:54:07 +01:00
}
2019-03-08 23:17:59 +01:00
},
actions: {
async requestCamera ({ state, commit }, inverseFacingMode) {
commit('updateCamera', null)
2019-03-12 17:41:30 +01:00
const shouldFaceUser = inverseFacingMode
? !state.cameraShouldFaceUser
: state.cameraShouldFaceUser
commit('updateCamera', await getCamera(shouldFaceUser))
2019-03-12 17:41:30 +01:00
if (inverseFacingMode) {
commit('updateCameraShouldFaceUser', shouldFaceUser)
}
2019-03-10 02:28:07 +01:00
}
2019-03-08 23:17:59 +01:00
}
})