From 5bc2b0d2221f7a6a7b83f76bdd4cc8c91de01cd6 Mon Sep 17 00:00:00 2001 From: "matthias.lotz" Date: Sun, 9 Nov 2025 21:49:33 +0100 Subject: [PATCH] refactor(frontend): Improve consent and success UX - Move ConsentCheckboxes below DescriptionInput for better flow - Replace success dialog with inline success display - Add copy-to-clipboard button for group ID - Show detailed next steps and GDPR contact info inline --- .../src/Components/Pages/MultiUploadPage.js | 194 +++++++++++++++--- 1 file changed, 166 insertions(+), 28 deletions(-) diff --git a/frontend/src/Components/Pages/MultiUploadPage.js b/frontend/src/Components/Pages/MultiUploadPage.js index 87859aa..0b97bbc 100644 --- a/frontend/src/Components/Pages/MultiUploadPage.js +++ b/frontend/src/Components/Pages/MultiUploadPage.js @@ -12,7 +12,6 @@ import DescriptionInput from '../ComponentUtils/MultiUpload/DescriptionInput'; import UploadProgress from '../ComponentUtils/MultiUpload/UploadProgress'; import Loading from '../ComponentUtils/LoadingAnimation/Loading'; import ConsentCheckboxes from '../ComponentUtils/MultiUpload/ConsentCheckboxes'; -import UploadSuccessDialog from '../ComponentUtils/MultiUpload/UploadSuccessDialog'; // Utils import { uploadImageBatch } from '../../Utils/batchUpload'; @@ -42,7 +41,6 @@ function MultiUploadPage() { const [uploadResult, setUploadResult] = useState(null); const [isEditMode, setIsEditMode] = useState(false); const [imageDescriptions, setImageDescriptions] = useState({}); - const [showSuccessDialog, setShowSuccessDialog] = useState(false); // Cleanup object URLs when component unmounts useEffect(() => { @@ -189,11 +187,10 @@ function MultiUploadPage() { clearInterval(progressInterval); setUploadProgress(100); - // Show success dialog + // Show success content setTimeout(() => { setUploadComplete(true); setUploadResult(result); - setShowSuccessDialog(true); }, 500); } catch (error) { @@ -247,17 +244,17 @@ function MultiUploadPage() { {selectedImages.length > 0 && ( <> + + - - + + + Notieren Sie sich diese Nummer für spätere Anfragen + + + + {/* Next Steps */} + + + Was passiert jetzt? + + + + + + Ihre Bilder werden vom Team geprüft + + + + + + Nach Freigabe erscheinen sie auf dem Werkstatt-Monitor + + + + + + Bei gewählter Social Media Einwilligung werden sie entsprechend veröffentlicht + + + + + + {/* GDPR Contact */} + + Fragen oder Widerruf? Kontaktieren Sie uns mit Ihrer Referenz-Nummer unter: it@hobbyhimmel.de + + + {/* Action Button */} + + + )} )} - {/* Success Dialog */} - {showSuccessDialog && uploadResult && ( - { - setShowSuccessDialog(false); - window.location.reload(); - }} - groupId={uploadResult.groupId} - uploadCount={uploadResult.imageCount} - /> - )} -