feat(media): add Media Manager UI (grid, upload, delete)
Some checks failed
Architecture Governance / architecture (push) Has been cancelled
Some checks failed
Architecture Governance / architecture (push) Has been cancelled
MediaLibraryPageComponent replaces the coming-soon placeholder at /backoffice/media. Built entirely on Sprint 6 Design System primitives (app-card, app-button, app-input, app-empty-state, app-dialog, app-pagination, app-skeleton) and Sprint 4 Task 2's MediaRepository/MockMediaRepository. - Grid view with per-tile filename/size and delete action - Hidden native file input triggered by an app-button, uploads via MediaLibraryFacade -> MediaRepository.upload() - Delete requires confirmation through app-dialog (destructive action) - Search + pagination wired to MockMediaRepository's list() params - Loading state shows app-skeleton tiles; empty state shows app-empty-state - New mediaLibrary.* translation namespace across en/ru/hy Verified in browser (via a temporary unguarded route, reverted before commit - /backoffice/media itself requires Telegram QR admin auth not available in this session): empty state renders correctly with translated copy, search input and upload button present, no console errors.
This commit is contained in:
@@ -844,4 +844,17 @@ export interface Translations {
|
||||
optionalDataMissingDescription: string;
|
||||
optionalDataMissingResolution: string;
|
||||
};
|
||||
mediaLibrary: {
|
||||
title: string;
|
||||
upload: string;
|
||||
uploading: string;
|
||||
searchPlaceholder: string;
|
||||
delete: string;
|
||||
deleteConfirmTitle: string;
|
||||
deleteConfirmBody: string;
|
||||
cancel: string;
|
||||
confirm: string;
|
||||
emptyTitle: string;
|
||||
emptyDescription: string;
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user