+2
-8
src/lib/Options.svelte
+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
+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")