Skip to content

Afficher un état de chargement dans la popup pendant browser.storage.sync.get#48

Merged
ormidales merged 3 commits into1.0.2from
copilot/add-loading-indicator-popup
Feb 16, 2026
Merged

Afficher un état de chargement dans la popup pendant browser.storage.sync.get#48
ormidales merged 3 commits into1.0.2from
copilot/add-loading-indicator-popup

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Feb 16, 2026

L’ouverture de la popup pouvait afficher une liste vide/statique pendant la latence de browser.storage.sync.get, sans feedback utilisateur. Cette PR ajoute un état visuel immédiat jusqu’au premier rendu effectif de renderList.

  • Contexte du correctif

    • La récupération asynchrone du stockage peut prendre plusieurs centaines de ms sur profils/connexions lents.
    • L’UI de la popup restait visuellement incomplète durant cette fenêtre.
  • Changement apporté (minimal)

    • Ajout d’un contenu par défaut dans ul#domain-list directement dans popup.html :
      • texte Chargement...
      • sémantique d’annonce via role="status"
    • Aucun changement de logique côté popup.js : le placeholder est naturellement remplacé au premier renderList (la liste est vidée puis reconstruite).
  • Extrait

<ul id="domain-list">
  <li class="empty-state" role="status">Chargement...</li>
</ul>
Original prompt

This section details on the original issue you should resolve

<issue_title>Indication manquante lors des requêtes de stockage longues</issue_title>
<issue_description>## Contexte
L'initialisation de la popup fait appel à l'API de stockage asynchrone browser.storage.sync.get.

Problème

Sur les connexions lentes ou lorsque le profil du navigateur est chargé, la synchronisation peut prendre plusieurs centaines de millisecondes. Durant ce temps, l'interface est affichée dans un état statique, non interactif et visuellement incomplet.

Scénario de Reproduction

  1. Simuler une latence sur les appels d'API d'extension.
  2. Ouvrir la popup.

Comportement Attendu

Un indicateur visuel (texte "Chargement..." ou spinner) doit être présent jusqu'à ce que renderList soit complètement résolu.

Pistes Techniques

Insérer un texte par défaut dans ul#domain-list directement dans le fichier popup.html, qui sera écrasé dès la première itération de la fonction renderList.

Environnement

Toutes plateformes.</issue_description>

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


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

Copilot AI and others added 2 commits February 16, 2026 20:52
Co-authored-by: ormidales <46538211+ormidales@users.noreply.github.com>
Co-authored-by: ormidales <46538211+ormidales@users.noreply.github.com>
Copilot AI changed the title [WIP] Add loading indicator for long storage requests Afficher un état de chargement dans la popup pendant browser.storage.sync.get Feb 16, 2026
Copilot AI requested a review from ormidales February 16, 2026 20:54
@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:54
Copilot AI review requested due to automatic review settings February 16, 2026 20:54
@ormidales ormidales merged commit 4080430 into 1.0.2 Feb 16, 2026
@ormidales ormidales deleted the copilot/add-loading-indicator-popup branch February 16, 2026 20:54
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 l’UX de la popup en affichant immédiatement un état transitoire pendant la latence de browser.storage.sync.get, jusqu’au premier rendu effectif de renderList.

Changes:

  • Ajout d’un placeholder “Chargement...” dans ul#domain-list au chargement initial.
  • Ajout d’une sémantique d’annonce via role="status" sur l’élément placeholder.

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

Comment thread popup.html
<button id="add-domain" type="button">Ajouter le domaine courant</button>
<div id="status" aria-live="polite"></div>
<ul id="domain-list"></ul>
<ul id="domain-list"><li class="empty-state" role="status">Chargement...</li></ul>
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.

role="status" sur un <li> risque d’être invalide (le rôle implicite de li est listitem, et ARIA-in-HTML restreint généralement les rôles autorisés). Ça peut casser la sémantique de liste pour les lecteurs d’écran. Préférer conserver le <li> sans role et utiliser plutôt un live region via aria-live="polite" (sur #status existant ou sur ul#domain-list), ou déplacer l’élément role="status" hors de la liste.

Suggested change
<ul id="domain-list"><li class="empty-state" role="status">Chargement...</li></ul>
<ul id="domain-list"><li class="empty-state">Chargement...</li></ul>

Copilot uses AI. Check for mistakes.
Comment thread popup.html
<button id="add-domain" type="button">Ajouter le domaine courant</button>
<div id="status" aria-live="polite"></div>
<ul id="domain-list"></ul>
<ul id="domain-list"><li class="empty-state" role="status">Chargement...</li></ul>
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.

Le <ul> et son <li> sont désormais sur une seule ligne, ce qui nuit à la lisibilité et complique les diffs. Mettre le <li> sur sa propre ligne (format identique au reste du fichier) rend le HTML plus maintenable.

Suggested change
<ul id="domain-list"><li class="empty-state" role="status">Chargement...</li></ul>
<ul id="domain-list">
<li class="empty-state" role="status">Chargement...</li>
</ul>

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.

Indication manquante lors des requêtes de stockage longues

3 participants