loadSavedForms function

Last updated: 2026-03-04T23:21:38.431Z

Metrics

LOC: 45 Complexity: 5 Params: 0

Signature

loadSavedForms(): : Promise<void>

Source Code

async function loadSavedForms(): Promise<void> {
  const forms = (await chrome.runtime.sendMessage({
    type: "GET_SAVED_FORMS",
  })) as SavedForm[];
  const list = document.getElementById("saved-forms-list");
  if (!list) return;

  list.innerHTML = "";

  if (!Array.isArray(forms) || forms.length === 0) {
    list.innerHTML = `<div class="empty">${t("noSavedForms")}</div>`;
    return;
  }

  for (const form of forms) {
    const item = document.createElement("div");
    item.className = "rule-item";
    item.innerHTML = `
      <div class="rule-info">
        <strong>${escapeHtml(form.name)}</strong>
        <span class="rule-selector">${escapeHtml(form.urlPattern)}</span>
        <span class="badge">${escapeHtml(fieldSummary(form))}</span>
      </div>
      <div class="rule-actions">
        <button class="btn btn-sm btn-edit" data-form-id="${escapeHtml(form.id)}">${t("btnEdit")}</button>
        <button class="btn btn-sm btn-delete" data-form-id="${escapeHtml(form.id)}">${t("btnDelete")}</button>
      </div>
    `;

    item.querySelector(".btn-edit")?.addEventListener("click", () => {
      openEditPanel(form);
    });

    item.querySelector(".btn-delete")?.addEventListener("click", async () => {
      await chrome.runtime.sendMessage({
        type: "DELETE_FORM",
        payload: form.id,
      });
      await loadSavedForms();
      showToast(t("toastFormDeleted"));
    });

    list.appendChild(item);
  }
}

Dependencies (Outgoing)

graph LR loadSavedForms["loadSavedForms"] fieldSummary["fieldSummary"] openEditPanel["openEditPanel"] loadSavedForms -->|calls| fieldSummary loadSavedForms -->|calls| openEditPanel loadSavedForms -->|calls| loadSavedForms style loadSavedForms fill:#dbeafe,stroke:#2563eb,stroke-width:2px click loadSavedForms "cf1ee6d5c3ab3b9b.html" click fieldSummary "171f77a6709cf221.html" click openEditPanel "452da4897e90f5ca.html"
TargetType
fieldSummary calls
openEditPanel calls
loadSavedForms calls
click dynamic_call

Impact (Incoming)

graph LR loadSavedForms["loadSavedForms"] bindCreatePanelEvents["bindCreatePanelEvents"] openEditPanel["openEditPanel"] importForms["importForms"] initFormsTab["initFormsTab"] bindCreatePanelEvents -->|calls| loadSavedForms loadSavedForms -->|calls| loadSavedForms openEditPanel -->|calls| loadSavedForms importForms -->|calls| loadSavedForms initFormsTab -->|calls| loadSavedForms style loadSavedForms fill:#dbeafe,stroke:#2563eb,stroke-width:2px click loadSavedForms "cf1ee6d5c3ab3b9b.html" click bindCreatePanelEvents "63724b3d20cd4419.html" click openEditPanel "452da4897e90f5ca.html" click importForms "8f033b80a44a7e60.html" click initFormsTab "016a6b967c8f6192.html"