Files
liberama/client/store/modules/reader.js

52 lines
1.0 KiB
JavaScript

import Vue from 'vue';
// initial state
const state = {
loaderActive: false,
fullScreenActive: false,
openedBook: {},
};
// getters
const getters = {
lastOpenedBook: (state) => {
let max = 0;
let result = null;
for (let bookKey in state.openedBook) {
const book = state.openedBook[bookKey];
if (book.touchTime > max) {
max = book.touchTime;
result = book;
}
}
return result;
},
};
// actions
const actions = {};
// mutations
const mutations = {
setLoaderActive(state, value) {
state.loaderActive = value;
},
setFullScreenActive(state, value) {
state.fullScreenActive = value;
},
addOpenedBook(state, value) {
Vue.set(state.openedBook, value.key, Object.assign({}, value, {touchTime: Date.now()}));
},
delOpenedBook(state, value) {
Vue.delete(state.openedBook, value.key);
}
};
export default {
namespaced: true,
state,
getters,
actions,
mutations
};