Pith - fret
fret/fret_firefox/popup.js [1.7 kb]
Modified: 17:14:01 138 026 (04 Aug 026)
19 Days Ago
const form = document.getElementById("add");
const input = document.getElementById("word");
const list = document.getElementById("list");
const toggle = document.getElementById("toggle");

const load = () => browser.storage.sync.get({ words: [] }).then(r => r.words);
const save = words => browser.storage.sync.set({ words });
const loadEnabled = () => browser.storage.sync.get({ enabled: true }).then(r => r.enabled);

function render(words) {
  list.replaceChildren(
    ...words.map(w => {
      const li = document.createElement("li");
      const label = document.createElement("span");
      label.textContent = w;
      const del = document.createElement("button");
      del.type = "button";
      del.textContent = "×";
      del.title = "Remove";
      del.addEventListener("click", () => remove(w));
      li.append(label, del);
      return li;
    })
  );
}

async function remove(word) {
  const words = (await load()).filter(w => w !== word);
  await save(words);
  render(words);
}

form.addEventListener("submit", async e => {
  e.preventDefault();
  const word = input.value.trim();
  input.value = "";
  input.focus();
  if (!word) return;
  const words = await load();
  if (words.some(w => w.toLowerCase() === word.toLowerCase())) return;
  words.push(word);
  await save(words);
  render(words);
});

function paint(enabled) {
  toggle.textContent = enabled ? "❚❚" : "▶";
  toggle.title = enabled ? "Pause" : "Resume";
  toggle.classList.toggle("off", !enabled);
}

toggle.addEventListener("click", async () => {
  const enabled = !(await loadEnabled());
  await browser.storage.sync.set({ enabled });
  paint(enabled);
});

load().then(render);
loadEnabled().then(paint);
Updates
Kerf - Android 157.026
Kiln - Android 157.026
Wedge - Android 156.026
Whittle - Linux 155.026
Grit - Firefox/Chrome 154.026

Menu
Calendar
Project Tin (024/029)
Miter
RSS Feed
User Avatar
@vgmlr
=SUM(parts)
0.00217
257,030 (+284)