souvenir/src/store.js

61 lines
1.4 KiB
JavaScript
Raw Normal View History

2019-03-08 22:17:59 +00:00
import Vue from 'vue'
import Vuex from 'vuex'
import { getCamera } from '/services/camera.js'
2019-03-08 22:17:59 +00:00
Vue.use(Vuex)
export default new Vuex.Store({
2019-03-12 09:34:41 +00:00
strict: process.env.NODE_ENV !== 'production',
2019-03-08 22:17:59 +00:00
state: {
cameraShouldFaceUser: true,
2019-03-09 21:54:07 +00:00
timer: {
selected: 2,
list: [2, 3, 5]
2019-03-09 23:14:30 +00:00
},
camera: null,
capture: null,
gif: null,
needRefresh: false
2019-03-08 22:17:59 +00:00
},
mutations: {
updateCameraShouldFaceUser (state, cameraShouldFaceUser) {
state.cameraShouldFaceUser = cameraShouldFaceUser
2019-03-09 21:54:07 +00:00
},
updateTimer (state, time) {
state.timer.selected = time
2019-03-09 23:14:30 +00:00
},
updateCamera (state, camera) {
if (state.camera) {
state.camera.mediaStream.getTracks().forEach(track => track.stop())
2019-03-10 22:35:26 +00: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 21:54:07 +00:00
}
2019-03-08 22:17:59 +00:00
},
actions: {
async requestCamera ({ state, commit }, inverseFacingMode) {
commit('updateCamera', null)
2019-03-12 16:41:30 +00:00
const shouldFaceUser = inverseFacingMode
? !state.cameraShouldFaceUser
: state.cameraShouldFaceUser
commit('updateCamera', await getCamera(shouldFaceUser))
2019-03-12 16:41:30 +00:00
if (inverseFacingMode) {
commit('updateCameraShouldFaceUser', shouldFaceUser)
}
2019-03-10 01:28:07 +00:00
}
2019-03-08 22:17:59 +00:00
}
})