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
This commit is contained in:
2026-04-26 17:12:43 -04:00
parent 1070bd7874
commit 3cc5a49518
2 changed files with 8 additions and 6 deletions
+1 -1
View File
@@ -19,7 +19,7 @@ Puis appliquer le schéma BD :
npx zen-db init 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 ## Architecture
+7 -5
View File
@@ -1,8 +1,10 @@
/** /**
* Media Feature — Admin navigation. * Media Feature — Admin navigation.
* *
* Side effect : enregistre la section "Contenu" et l'item "Médias" dans la * 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. * 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 : // 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'; import { MEDIA_PERMISSIONS } from './permissions.js';
if (isMediaEnabled()) { if (isMediaEnabled()) {
registerNavSection({ id: 'content', title: 'Contenu', icon: 'File02Icon', order: 25 }); registerNavSection({ id: 'media', title: 'Médias', icon: 'Image01Icon', order: 25 });
registerNavItem({ registerNavItem({
id: 'media', id: 'media',
label: 'Médias', label: 'Médias',
icon: 'Image01Icon', icon: 'Image01Icon',
href: '/admin/media', href: '/admin/media',
sectionId: 'content', sectionId: 'media',
order: 10, order: 50,
permission: MEDIA_PERMISSIONS.VIEW, permission: MEDIA_PERMISSIONS.VIEW,
}); });
} }