Skip to content

Popup: sort whitelist domains alphabetically before rendering#47

Merged
ormidales merged 2 commits into1.0.2from
copilot/sort-whitelist-items-alphabetically
Feb 16, 2026
Merged

Popup: sort whitelist domains alphabetically before rendering#47
ormidales merged 2 commits into1.0.2from
copilot/sort-whitelist-items-alphabetically

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Feb 16, 2026

La popup affichait les domaines en ordre d’ajout, ce qui rendait la recherche/suppression difficile dès que la liste grandissait. Cette PR aligne l’UI sur le besoin de lisibilité en triant la liste blanche par ordre alphabétique.

  • What changed

    • renderList dans popup.js trie désormais les domaines avant génération du DOM.
    • Le tri est insensible à la casse pour un ordre utilisateur cohérent (Alpha.com, beta.com, zeta.com).
    • Le tri se fait sur une copie ([...domains]) pour éviter toute mutation de la valeur récupérée depuis le storage.
  • Implementation (minimal diff)

    const domains = await getStoredDomains();
    const sortedDomains = [...domains].sort((a, b) =>
      a.localeCompare(b, undefined, { sensitivity: "base" })
    );
    
    sortedDomains.forEach((domain) => {
      // render item
    });
  • UI impact

    • La liste d’exceptions est désormais affichée de façon alphabétique, facilitant le repérage visuel et le nettoyage.
  • Screenshot
    Popup whitelist sorted

Original prompt

This section details on the original issue you should resolve

<issue_title>Absence de tri des éléments dans l'interface de la liste blanche</issue_title>
<issue_description>## Contexte
La popup affiche les domaines dans l'ordre chronologique exact de leur ajout.

Problème

Avec le temps, la liste peut devenir longue. L'ordre chronologique rend la recherche visuelle d'un domaine spécifique très difficile pour l'utilisateur qui souhaite faire du nettoyage.

Scénario de Reproduction

  1. Ajouter aléatoirement 15 domaines différents sur plusieurs jours.
  2. Ouvrir la popup et chercher un domaine spécifique pour le supprimer.

Comportement Attendu

La liste des exceptions doit être classée par ordre alphabétique pour faciliter la lecture.

Pistes Techniques

Appliquer domains.sort() juste après la récupération asynchrone dans renderList de popup.js, avant de procéder à la génération du DOM.

Environnement

Toutes plateformes.</issue_description>

Comments on the Issue (you are @copilot in this section)


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Co-authored-by: ormidales <46538211+ormidales@users.noreply.github.com>
Copilot AI changed the title [WIP] Add alphabetical sorting for whitelist items in popup Popup: sort whitelist domains alphabetically before rendering Feb 16, 2026
Copilot AI requested a review from ormidales February 16, 2026 20:48
@ormidales ormidales added this to the v1.0.2 milestone Feb 16, 2026
@ormidales ormidales linked an issue Feb 16, 2026 that may be closed by this pull request
@ormidales ormidales marked this pull request as ready for review February 16, 2026 20:50
Copilot AI review requested due to automatic review settings February 16, 2026 20:50
@ormidales ormidales merged commit 54ef2df into 1.0.2 Feb 16, 2026
@ormidales ormidales deleted the copilot/sort-whitelist-items-alphabetically branch February 16, 2026 20:50
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Cette PR améliore la lisibilité de la liste blanche dans la popup en affichant les domaines par ordre alphabétique (insensible à la casse) avant le rendu, afin de faciliter la recherche et la suppression d’entrées.

Changes:

  • Tri alphabétique insensible à la casse des domaines dans renderList avant génération du DOM.
  • Tri effectué sur une copie du tableau pour éviter de muter la valeur issue du storage.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread popup.js
Comment on lines 14 to +17
const domains = await getStoredDomains();
const sortedDomains = [...domains].sort((a, b) =>
a.localeCompare(b, undefined, { sensitivity: "base" })
);
Copy link

Copilot AI Feb 16, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sortedDomains is built by calling a.localeCompare(...), but getStoredDomains() only validates that the stored value is an array (not that its elements are strings). If sync storage ever contains non-string entries (e.g., corrupted/legacy data), this will throw and break the popup rendering. Consider normalizing first (filter typeof === "string", trim(), optionally lowercase for display/sort consistency) and then sorting the sanitized list (similar to updateExceptionDomains in background.js).

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Absence de tri des éléments dans l'interface de la liste blanche

3 participants