-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmy-zone.js
More file actions
34 lines (31 loc) · 1.16 KB
/
my-zone.js
File metadata and controls
34 lines (31 loc) · 1.16 KB
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
34
/* global loadStoredImages, DataZone, fetchBlobFromUrl */
const textZone = new DataZone(document.getElementById('text-zone'), 'text');
const imgZone = new DataZone(document.getElementById('img-zone'), 'img');
textZone.containerEl.querySelector('button.save-collection').addEventListener('click', textZone.save);
imgZone.containerEl.querySelector('button.save-collection').addEventListener('click', imgZone.save);
let collectedText = localStorage.getItem('text');
if (collectedText){
collectedText = JSON.parse(collectedText);
textZone.setState({collected: collectedText});
}
loadStoredImages()
.then((storedImages) => {
imgZone.setState({collected: storedImages});
})
.catch(console.error);
browser.runtime.onMessage.addListener(async (msg) => {
if (msg.type === 'new-image') {
let collected = imgZone.state.collected || [];
const fetchRes = await fetchBlobFromUrl(msg.data);
collected.push(fetchRes);
imgZone.setState({collected});
return true;
}
else if (msg.type === 'new-text') {
let collected = textZone.state.collected || [];
collected.push(msg.data);
textZone.setState({collected});
return true;
}
return true;
});