feat: add boilerplate
This commit is contained in:
48
popup.js
Normal file
48
popup.js
Normal file
@@ -0,0 +1,48 @@
|
||||
const textarea = document.getElementById("dictionary");
|
||||
const saveBtn = document.getElementById("saveBtn");
|
||||
|
||||
const DEFAULT_TEXT = `consultant=conslutant
|
||||
AI process engineer=algorithm inventor`;
|
||||
|
||||
function parseDictionary(text) {
|
||||
const lines = text.split("\n");
|
||||
const result = {};
|
||||
|
||||
for (const line of lines) {
|
||||
if (!line.includes("=")) continue;
|
||||
|
||||
const [key, ...rest] = line.split("=");
|
||||
result[key.trim()] = rest.join("=").trim();
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
function serializeDictionary(obj) {
|
||||
return Object.entries(obj)
|
||||
.map(([k, v]) => `${k}=${v}`)
|
||||
.join("\n");
|
||||
}
|
||||
|
||||
chrome.storage.sync.get(["replacements"], (result) => {
|
||||
const replacements = result.replacements;
|
||||
|
||||
if (!replacements) {
|
||||
textarea.value = DEFAULT_TEXT;
|
||||
return;
|
||||
}
|
||||
|
||||
textarea.value = serializeDictionary(replacements);
|
||||
});
|
||||
|
||||
saveBtn.addEventListener("click", () => {
|
||||
const parsed = parseDictionary(textarea.value);
|
||||
|
||||
chrome.storage.sync.set({ replacements: parsed }, () => {
|
||||
saveBtn.innerText = "Saved!";
|
||||
|
||||
setTimeout(() => {
|
||||
saveBtn.innerText = "Save Dictionary";
|
||||
}, 1200);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user