c9f7b23498
- add `ZEN_MEDIA` env flag and document it in `.env.example` - add media schema, server routes, and API handlers (`api.server.js`, `routes.server.js`, `schema.server.js`) - add `MediaPage`, `MediaGrid`, `MediaFilters`, and `MediaPicker` client components - expose `@zen/core/features/media` and `@zen/core/features/media/picker` package exports - register media navigation and permissions; wire module into `init.js` - document media API, client picker usage, and boundary rules in `MODULES.md` and `ARCHITECTURE.md` - add `src/features/media/README.md`
26 lines
858 B
JavaScript
26 lines
858 B
JavaScript
/**
|
|
* 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.
|
|
*/
|
|
|
|
// Import direct depuis le registre pour éviter une dépendance circulaire :
|
|
// admin/navigation.js → media/navigation.js → admin barrel → admin/navigation.js
|
|
import { registerNavSection, registerNavItem } from '../admin/registry.js';
|
|
import { isMediaEnabled } from '@zen/core/shared/config';
|
|
import { MEDIA_PERMISSIONS } from './permissions.js';
|
|
|
|
if (isMediaEnabled()) {
|
|
registerNavSection({ id: 'content', title: 'Contenu', icon: 'File02Icon', order: 25 });
|
|
registerNavItem({
|
|
id: 'media',
|
|
label: 'Médias',
|
|
icon: 'Image01Icon',
|
|
href: '/admin/media',
|
|
sectionId: 'content',
|
|
order: 10,
|
|
permission: MEDIA_PERMISSIONS.VIEW,
|
|
});
|
|
}
|