setReportModal(rep)}
- >
-
-
-
- Meldung #{rep.id}
-
-
-
- {rep.target_type === 'media_asset' ? 'Medium' : 'Übung'} #{rep.target_id}
- {rep.target_filename || rep.target_exercise_name ? ` – ${rep.target_filename || rep.target_exercise_name}` : ''}
-
-
-
- {STATUS_LABELS[rep.status] || rep.status}
-
-
-
- {REASON_LABELS[rep.report_reason] || rep.report_reason}
- {' · '}
- {rep.reporter_name}
- {rep.reporter_profile_id ? ` (Profil #${rep.reporter_profile_id})` : ' (anonym)'}
- {' · '}
- {formatWhen(rep.submitted_at || rep.created_at)}
-
+ function ReportCard({ rep }) {
+ return (
+
setReportModal(rep)}
+ >
+
+
+
+ Meldung #{rep.id}
+
+
+
+ {rep.target_type === 'media_asset' ? 'Medium' : 'Übung'} #{rep.target_id}
+ {rep.target_filename || rep.target_exercise_name ? ` – ${rep.target_filename || rep.target_exercise_name}` : ''}
+
- ))}
+
+ {STATUS_LABELS[rep.status] || rep.status}
+
+
+
+ {REASON_LABELS[rep.report_reason] || rep.report_reason}
+ {' · '}
+ {rep.reporter_name}
+ {rep.reporter_profile_id ? ` (Profil #${rep.reporter_profile_id})` : ' (anonym)'}
+ {' · '}
+ {formatWhen(rep.submitted_at || rep.created_at)}
+
- )}
-
- )}
+ )
+ }
+
+ return (
+
+
+ Inhaltsmeldungen
+ {contentReportCount > 0 && (
+
+ {contentReportCount} neu
+
+ )}
+
+
+ {contentReportsError ? (
+
+
+ Fehler beim Laden: {contentReportsError}
+
+
+
+ ) : (
+ <>
+ {openReports.length === 0 ? (
+
+
Keine offenen Inhaltsmeldungen.
+
+ ) : (
+
+ {openReports.map((rep) => )}
+
+ )}
+
+ {archivedReports.length > 0 && (
+
+
+ {showArchive && (
+
+ {archivedReports.map((rep) => )}
+
+ )}
+
+ )}
+ >
+ )}
+
+ )
+ })()}
>
)}
@@ -642,6 +664,7 @@ export default function InboxPage() {
setReportModal(null)}
onRefresh={load}
/>
diff --git a/frontend/src/version.js b/frontend/src/version.js
index 0215d12..cb40418 100644
--- a/frontend/src/version.js
+++ b/frontend/src/version.js
@@ -1,6 +1,6 @@
// Shinkan Jinkendo Frontend Version
-export const APP_VERSION = "0.8.92"
+export const APP_VERSION = "0.8.93"
export const BUILD_DATE = "2026-05-11"
export const PAGE_VERSIONS = {
@@ -27,8 +27,8 @@ export const PAGE_VERSIONS = {
ExerciseMediaEmbed: "1.1.0", // P-11: Legal-Hold-Placeholder statt Datei
ExerciseMediaThumbTile: "1.1.0", // P-11: Legal-Hold-Kachel statt Datei-Vorschau
ExerciseAttachmentMediaStrip: "1.2.0", // P-13: MediaPreviewModal (geteilt) + Melden im Viewer
- InboxPage: "2.2.0", // P-13: Workflow-Balken, Wieder-öffnen, Kommentar, Fehleranzeigezeige
- OrgInboxContext: "1.2.0", // P-13: contentReportsError exposed
+ InboxPage: "2.3.0", // P-13: Archiv-Trennung offen/abgeschlossen; Club-Admin Legal-Hold-Button
+ OrgInboxContext: "1.3.0", // P-13: isClubAdmin + isPlatformAdmin exposed
MediaPreviewModal: "1.0.0", // P-13: geteilter Medienvorschau-Dialog (Melden + Bearbeiten optional)
ReportContentModal: "1.2.0", // P-13: onSuccess callback fuer Badge-Update
}