mirror of
https://github.com/mokuappio/serverless-invoices.git
synced 2025-10-28 16:31:07 -04:00
Import data.
This commit is contained in:
41
src/store/data.js
Normal file
41
src/store/data.js
Normal file
@ -0,0 +1,41 @@
|
||||
import localForage from 'localforage';
|
||||
import { download } from '../utils/helpers';
|
||||
|
||||
export default {
|
||||
namespaced: true,
|
||||
state: {
|
||||
isImportModalOpen: false,
|
||||
},
|
||||
mutations: {
|
||||
isImportModalOpen(state, isOpen) {
|
||||
state.isImportModalOpen = isOpen;
|
||||
},
|
||||
},
|
||||
actions: {
|
||||
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: {},
|
||||
};
|
||||
Reference in New Issue
Block a user