From 3cc5a4951824cb2266e4b0c5d5cddf1fde48ff03 Mon Sep 17 00:00:00 2001 From: Hyko Date: Sun, 26 Apr 2026 17:12:43 -0400 Subject: [PATCH] refactor(media): promote media nav item to top-level sidebar entry - replace generic "Contenu" section with a dedicated "media" section sharing the same id/label as the item - update sectionId and order to trigger shouldRenderAsDirectLink in AdminSidebar - update README to reflect top-level entry instead of nested section --- src/features/media/README.md | 2 +- src/features/media/navigation.js | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/features/media/README.md b/src/features/media/README.md index 1eccd09..dfe36ac 100644 --- a/src/features/media/README.md +++ b/src/features/media/README.md @@ -19,7 +19,7 @@ Puis appliquer le schéma BD : npx zen-db init ``` -L'item « Médias » apparaît dans la sidebar admin sous une nouvelle section « Contenu », accessible aux utilisateurs ayant la permission `media.view`. +L'item « Médias » apparaît comme entrée top-level de la sidebar admin (sans section parente), accessible aux utilisateurs ayant la permission `media.view`. ## Architecture diff --git a/src/features/media/navigation.js b/src/features/media/navigation.js index 4225edb..03ef1a2 100644 --- a/src/features/media/navigation.js +++ b/src/features/media/navigation.js @@ -1,8 +1,10 @@ /** * Media Feature — Admin navigation. * - * Side effect : enregistre la section "Contenu" et l'item "Médias" dans la - * sidebar admin si le module est activé via ZEN_MEDIA=true. + * Side effect : enregistre l'item "Médias" comme entrée top-level de la + * sidebar admin si le module est activé via ZEN_MEDIA=true. La section + * partage le même id/label que l'item, ce qui déclenche le rendu en lien + * direct dans AdminSidebar (shouldRenderAsDirectLink). */ // Import direct depuis le registre pour éviter une dépendance circulaire : @@ -12,14 +14,14 @@ import { isMediaEnabled } from '@zen/core/shared/config'; import { MEDIA_PERMISSIONS } from './permissions.js'; if (isMediaEnabled()) { - registerNavSection({ id: 'content', title: 'Contenu', icon: 'File02Icon', order: 25 }); + registerNavSection({ id: 'media', title: 'Médias', icon: 'Image01Icon', order: 25 }); registerNavItem({ id: 'media', label: 'Médias', icon: 'Image01Icon', href: '/admin/media', - sectionId: 'content', - order: 10, + sectionId: 'media', + order: 50, permission: MEDIA_PERMISSIONS.VIEW, }); }