Track your online rabbitholes!

fix: pass param when a new website is saved instead of smoke test

authored by Govind Mohan and committed by Govind Mohan 48a0c4b6 ae40d95f

Changed files
+9 -15
src
lib
storage
+2 -8
src/lib/Options.svelte
··· 5 5 let successMessage: string = null; 6 6 7 7 async function save() { 8 - // FIXME: stop this from logging an error 9 - const savedTab = await chrome.runtime.sendMessage({type: MessageRequest.SAVE_TAB}); 10 - 11 - if(("url" in savedTab)){ 12 - successMessage = "Website saved!"; 13 - } else { 14 - successMessage = "Website already saved!"; 15 - } 8 + const [savedTab] = await chrome.runtime.sendMessage({type: MessageRequest.SAVE_TAB}); 9 + successMessage = (savedTab.alreadySaved)? "Website already saved!" : "Website saved!"; 16 10 setTimeout(() => { 17 11 successMessage = null; 18 12 }, 1500);
+7 -7
src/storage/db.ts
··· 131 131 }); 132 132 } 133 133 134 - async store(items: Website[]): Promise<Website[]> { 134 + async store(items: Website[]): Promise<Website | { alreadySaved: boolean }[]> { 135 135 return new Promise(async (resolve, reject) => { 136 136 let db: IDBDatabase; 137 137 try { ··· 142 142 143 143 // update website list of active project 144 144 let currentProject = await this.getActiveProject(); 145 - for (const item of items) { 146 - for (const w of currentProject.savedWebsites) { 147 - if (w === item.url) { 148 - reject(new Error("Item already stored")); 149 - } 145 + for (let item of items) { 146 + if (!currentProject.savedWebsites.includes(item.url)) { 147 + currentProject.savedWebsites.push(item.url); 148 + item.alreadySaved = false; 149 + } else { 150 + item.alreadySaved = true; 150 151 } 151 - currentProject.savedWebsites.push(item.url); 152 152 } 153 153 154 154 const projectRequest = db.transaction(["projects"], "readwrite")