4
2
mirror of https://github.com/getbible/app.git synced 2024-05-28 16:40:48 +00:00
app/src/store.js
2020-10-27 22:36:27 +02:00

60 lines
1.4 KiB
JavaScript

import { createStore } from 'vuex'
import idb from './api/idb';
export const store = createStore({
state: {
settings: {
savedTr: []
},
trs: [],
search: '',
},
mutations: {
add_translation (state,translation ) {
state.settings.savedTr.push(translation)
},
remove_translation (state,abbr ) {
state.settings.savedTr = state.settings.savedTr.filter(tr => tr.abbreviation !==abbr)
},
set_settings(state, settings){
state.settings = settings;
localStorage.setItem('settings', JSON.stringify(settings))
},
add_search(state, search){
state.search = search
}
},
actions:{
add({commit}, tr){
commit('add_translation', tr);
},
remove({commit}, abbr){
commit('remove_translation', abbr);
},
add_s({commit}, sr){
commit('add_search', sr);
},
async deleteTranslation(context, tr) {
await idb.deleteCat(tr);
},
async getTranslations(context) {
context.state.trs = [];
let trs = await idb.getTranslations();
trs.forEach(t => {
context.state.trs.push(t);
});
},
async getTranslation(context, abbr) {
let tr = await idb.getTranslation(abbr);
return tr;
},
async saveTranslation(context, tr) {
await idb.saveCat(tr);
}
}
})
// export default store;