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
```
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
+7 -5
View File
@@ -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,
});
}