Files
serverless-invoices/src/store/data.js
2021-04-22 19:05:41 +03:00

46 lines
1.2 KiB
JavaScript

import localForage from 'localforage';
import MigrationService from '@/services/migration.service';
import { download } from '../utils/helpers';
export default {
namespaced: true,
state: {
isImportModalOpen: false,
},
mutations: {
isImportModalOpen(state, isOpen) {
state.isImportModalOpen = isOpen;
},
},
actions: {
async migrate() {
return MigrationService.migrate();
},
async exportJson() {
let results = [];
const keys = await localForage.keys();
keys.forEach((key) => {
results.push(localForage.getItem(key));
});
results = await Promise.all(results);
const data = {};
keys.forEach((key, index) => {
data[key] = results[index];
});
download(JSON.stringify(data), 'serverless-invoices.json', 'application/json');
},
async importJson({ dispatch }, data) {
const results = [];
Object.keys(data).forEach((key) => {
results.push(localForage.setItem(key, data[key]));
});
await Promise.all(results);
await dispatch('teams/terminate', null, { root: true });
return dispatch('teams/init', null, { root: true });
},
},
getters: {},
};