54 lines
1012 B
JavaScript
54 lines
1012 B
JavaScript
/**
|
|
* SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
|
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
|
*/
|
|
|
|
import Vue from 'vue'
|
|
import Vuex, { Store } from 'vuex'
|
|
import { generateCodes } from './service/BackupCodesService.js'
|
|
|
|
Vue.use(Vuex)
|
|
|
|
const state = {
|
|
enabled: false,
|
|
total: 0,
|
|
used: 0,
|
|
codes: [],
|
|
}
|
|
|
|
const mutations = {
|
|
setEnabled(state, enabled) {
|
|
Vue.set(state, 'enabled', enabled)
|
|
},
|
|
setTotal(state, total) {
|
|
Vue.set(state, 'total', total)
|
|
},
|
|
setUsed(state, used) {
|
|
Vue.set(state, 'used', used)
|
|
},
|
|
setCodes(state, codes) {
|
|
Vue.set(state, 'codes', codes)
|
|
},
|
|
}
|
|
|
|
const actions = {
|
|
generate({ commit }) {
|
|
commit('setEnabled', false)
|
|
|
|
return generateCodes().then(({ codes, state }) => {
|
|
commit('setEnabled', state.enabled)
|
|
commit('setTotal', state.total)
|
|
commit('setUsed', state.used)
|
|
commit('setCodes', codes)
|
|
return true
|
|
})
|
|
},
|
|
}
|
|
|
|
export default new Store({
|
|
strict: process.env.NODE_ENV !== 'production',
|
|
state,
|
|
mutations,
|
|
actions,
|
|
})
|