-
Notifications
You must be signed in to change notification settings - Fork 2
/
storage.js
33 lines (31 loc) · 1.09 KB
/
storage.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
const settingsObj = chrome.storage.sync.get('settings');
const syncToCloud = settingsObj.settings ? settingsObj.settings.sync : '';
export const setStorage = (item) => {
if (syncToCloud === 'YES') {
chrome.storage.sync.set(item);
} else {
chrome.storage.local.set(item);
}
};
export const getStorage = async (itemName) => {
if (syncToCloud === 'YES') {
const item = await chrome.storage.sync.get(itemName);
return item;
}
const item = await chrome.storage.local.get(itemName);
return item;
};
export const editStorage = async (id, editedItem, storageItem = 'cards') => {
const itemsObj = await getStorage(storageItem);
const updatedStorage = itemsObj[storageItem].map((item) =>
item.id !== id ? item : editedItem
);
setStorage({ [storageItem]: updatedStorage });
return updatedStorage;
};
export const deleteStorageItem = async (id, storageItem = 'cards') => {
const itemsObj = await getStorage(storageItem);
const updatedStorage = itemsObj[storageItem].filter((item) => item.id !== id);
setStorage({ [storageItem]: updatedStorage });
return updatedStorage;
};