loadRules function

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

Metrics

LOC: 48 Complexity: 7 Params: 0

Signature

loadRules(): : Promise<void>

Source Code

async function loadRules(): Promise<void> {
  const rules = (await chrome.runtime.sendMessage({
    type: "GET_RULES",
  })) as FieldRule[];
  const list = document.getElementById("rules-list");
  if (!list) return;

  list.innerHTML = "";

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

  for (const rule of rules) {
    const item = document.createElement("div");
    item.className = "rule-item";
    item.innerHTML = `
      <div class="rule-info">
        <strong>${escapeHtml(rule.urlPattern)}</strong>
        <span class="rule-selector">${escapeHtml(rule.fieldSelector)}</span>
        <span class="badge">${escapeHtml(rule.fieldType)}</span>
        ${rule.fixedValue ? `<span class="badge badge-fixed">${t("fixedLabel", [escapeHtml(rule.fixedValue)])}</span>` : ""}
        ${rule.generatorParams ? `<span class="badge badge-params">⚙ ${t("paramSectionTitle")}</span>` : ""}
        <span class="rule-priority">${t("rulePriority")} ${rule.priority}</span>
      </div>
      <div class="rule-actions">
        <button class="btn btn-sm btn-edit" data-rule-id="${escapeHtml(rule.id)}">Editar</button>
        <button class="btn btn-sm btn-delete" data-rule-id="${escapeHtml(rule.id)}">Excluir</button>
      </div>
    `;

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

    item.querySelector(".btn-delete")?.addEventListener("click", async () => {
      await chrome.runtime.sendMessage({
        type: "DELETE_RULE",
        payload: rule.id,
      });
      await loadRules();
      showToast(t("toastRuleDeleted"));
    });

    list.appendChild(item);
  }
}

Dependencies (Outgoing)

graph LR loadRules["loadRules"] FieldRule["FieldRule"] FieldType["FieldType"] GeneratorParams["GeneratorParams"] escapeHtml["escapeHtml"] generateId["generateId"] showToast["showToast"] t["t"] getGeneratorKey["getGeneratorKey"] getGeneratorParamDefs["getGeneratorParamDefs"] GeneratorParamDef["GeneratorParamDef"] editRule["editRule"] loadRules -->|uses| FieldRule loadRules -->|uses| FieldType loadRules -->|uses| GeneratorParams loadRules -->|uses| escapeHtml loadRules -->|uses| generateId loadRules -->|uses| showToast loadRules -->|uses| t loadRules -->|uses| getGeneratorKey loadRules -->|uses| getGeneratorParamDefs loadRules -->|uses| GeneratorParamDef loadRules -->|calls| editRule loadRules -->|calls| loadRules style loadRules fill:#dbeafe,stroke:#2563eb,stroke-width:2px click loadRules "9993895f2b3163a1.html" click FieldRule "2faad09a4e9d7546.html" click FieldType "e49ed8a601306673.html" click GeneratorParams "e1fda5b7991e343d.html" click escapeHtml "67836c1424e9ebff.html" click generateId "b7d96ccd023f052f.html" click showToast "087fe5d2f8cca7e9.html" click t "8e8864a3c5cfd1e1.html" click getGeneratorKey "e7b965173cc19212.html" click getGeneratorParamDefs "5f7cd051f625c3b9.html" click GeneratorParamDef "5f6fd257bb87db11.html" click editRule "238046fb2c80772c.html"
TargetType
FieldRule uses
FieldType uses
GeneratorParams uses
escapeHtml uses
generateId uses
showToast uses
t uses
getGeneratorKey uses
getGeneratorParamDefs uses
GeneratorParamDef uses
editRule calls
loadRules calls
click dynamic_call

Impact (Incoming)

graph LR loadRules["loadRules"] bindRulesEvents["bindRulesEvents"] initRulesTab["initRulesTab"] loadRules -->|calls| loadRules bindRulesEvents -->|calls| loadRules initRulesTab -->|calls| loadRules style loadRules fill:#dbeafe,stroke:#2563eb,stroke-width:2px click loadRules "9993895f2b3163a1.html" click bindRulesEvents "3107cd11f10b1501.html" click initRulesTab "d8b3be773c58391d.html"
SourceType
loadRules calls
bindRulesEvents calls
initRulesTab calls