48 lines
1.1 KiB
JavaScript
48 lines
1.1 KiB
JavaScript
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);
|
|
});
|
|
}); |