github peterdu1109/NotifySync v5.5.11.8
🔔 NotifySync v5.5.11.8

latest releases: v5.5.11.10, v5.5.11.9
4 hours ago

🇬🇧 English

📝 In Short

The icon next to NotifySync in the admin sidebar is now actually a bell. The previous attempt didn't match the modern Jellyfin sidebar layout — now it does.

🐛 What's Fixed

  • Folder icon stayed put despite the previous fix — Modern Jellyfin renders sidebar icons differently than the older themes. The fix now targets the right element and the bell shows up correctly.

🔧 Technical details for the curious

Jellyfin 10.11+ renders the admin sidebar with Material-UI React components. Plugin links look like:

<a href="#/configurationpage?name=NotifySync" class="MuiListItemButton-root ...">
  <div class="MuiListItemIcon-root">
    <svg class="MuiSvgIcon-root" viewBox="0 0 24 24">
      <path d="..." />   <!-- folder glyph -->
    </svg>
  </div>
  ...
</a>

There is no <span class="material-icons"> — the previous 5.5.11.7 fallback selector matched nothing. The new approach finds the inline <svg> <path> child and rewrites its d attribute to the Material "notifications" path data. Single-node mutation, no extra elements, no duplicates.

Idempotency: the rewrite only fires when the path actually differs, so MutationObserver ticks on subsequent renders are cheap no-ops. This also makes the fix survive React re-renders without needing a marker attribute on the parent.

A .material-icons fallback stays in place for older themes / custom skins.


🇫🇷 Français

📝 En bref

L'icône à côté de NotifySync dans la sidebar admin est maintenant vraiment une cloche. La tentative précédente ne ciblait pas la bonne structure de sidebar Jellyfin — maintenant si.

🐛 Corrections

  • Le dossier restait en place malgré la correction précédente — Jellyfin moderne rend les icônes sidebar différemment des thèmes plus anciens. La correction cible maintenant le bon élément et la cloche s'affiche correctement.

🔧 Détails techniques pour les curieux

Jellyfin 10.11+ rend la sidebar admin avec des composants Material-UI React. Les liens de plugin ressemblent à :

<a href="#/configurationpage?name=NotifySync" class="MuiListItemButton-root ...">
  <div class="MuiListItemIcon-root">
    <svg class="MuiSvgIcon-root" viewBox="0 0 24 24">
      <path d="..." />   <!-- glyph dossier -->
    </svg>
  </div>
  ...
</a>

Il n'y a pas de <span class="material-icons"> — le fallback de 5.5.11.7 ne matchait rien. La nouvelle approche trouve le <path> inline du <svg> et réécrit son attribut d avec les données du chemin Material "notifications". Une seule mutation de nœud, pas d'éléments en plus, pas de doublons.

Idempotence : la réécriture ne se déclenche que quand le chemin diffère réellement, donc les ticks du MutationObserver sur les rendus suivants sont des no-ops bon marché. Ça fait aussi survivre la correction aux re-renders React sans avoir besoin de marker sur le parent.

Un fallback .material-icons reste en place pour les thèmes plus anciens / skins custom.

Don't miss a new NotifySync release

NewReleases is sending notifications on new releases.