From a04414ab4611db88d60dff75f3c77ecca8a088cd Mon Sep 17 00:00:00 2001 From: michaelschal <35957947-michaelschal@users.noreply.replit.com> Date: Tue, 14 Oct 2025 10:06:31 +0000 Subject: [PATCH 1/3] Transitioned from Plan to Build mode Replit-Commit-Author: Agent Replit-Commit-Session-Id: ae4037a0-2a6f-4530-9bac-79b543286bda Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/397bca8c-984f-43ff-841a-10897aeb8140/ae4037a0-2a6f-4530-9bac-79b543286bda/fGL9Pd7 --- ...6F-413A-9B5A-9D6E39B88B8E}_1760435149127.png | Bin 0 -> 52296 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 attached_assets/{56D2641F-E36F-413A-9B5A-9D6E39B88B8E}_1760435149127.png diff --git a/attached_assets/{56D2641F-E36F-413A-9B5A-9D6E39B88B8E}_1760435149127.png b/attached_assets/{56D2641F-E36F-413A-9B5A-9D6E39B88B8E}_1760435149127.png new file mode 100644 index 0000000000000000000000000000000000000000..c815a2c15e722b142ec5d576a0e4d0b6f53e218b GIT binary patch literal 52296 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 C8SS6| literal 0 HcmV?d00001 From b3675a190086007b55eeec4d19a26c1a7a84e88e Mon Sep 17 00:00:00 2001 From: michaelschal <35957947-michaelschal@users.noreply.replit.com> Date: Tue, 14 Oct 2025 10:08:08 +0000 Subject: [PATCH 2/3] Fix issue with uploading camera photos on Android devices Correct the file naming convention for camera captures on Android to prevent upload failures by generating a valid filename if the original is missing or invalid. Replit-Commit-Author: Agent Replit-Commit-Session-Id: ae4037a0-2a6f-4530-9bac-79b543286bda Replit-Commit-Checkpoint-Type: intermediate_checkpoint Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/397bca8c-984f-43ff-841a-10897aeb8140/ae4037a0-2a6f-4530-9bac-79b543286bda/fGL9Pd7 --- client/src/components/media-upload.tsx | 9 ++++++++- client/src/pages/new-post.tsx | 9 ++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/client/src/components/media-upload.tsx b/client/src/components/media-upload.tsx index 9340414..6200180 100644 --- a/client/src/components/media-upload.tsx +++ b/client/src/components/media-upload.tsx @@ -115,7 +115,14 @@ export default function MediaUpload() { const handleCameraCapture = (e: React.ChangeEvent) => { const file = e.target.files?.[0]; if (file) { - uploadMutation.mutate(file); + // Correction Android : créer un nom valide si le fichier n'a pas de nom + let fileToUpload = file; + if (!file.name || file.name === 'blob' || file.name === '') { + const extension = file.type.split('/')[1] || 'jpg'; + const newFileName = `camera-${Date.now()}.${extension}`; + fileToUpload = new File([file], newFileName, { type: file.type }); + } + uploadMutation.mutate(fileToUpload); // Réinitialiser l'input pour permettre de capturer la même photo à nouveau e.target.value = ''; } diff --git a/client/src/pages/new-post.tsx b/client/src/pages/new-post.tsx index c841d79..83fd9dc 100644 --- a/client/src/pages/new-post.tsx +++ b/client/src/pages/new-post.tsx @@ -294,7 +294,14 @@ export default function NewPost() { const handleCameraCapture = (e: React.ChangeEvent) => { const file = e.target.files?.[0]; if (file) { - uploadMutation.mutate(file); + // Correction Android : créer un nom valide si le fichier n'a pas de nom + let fileToUpload = file; + if (!file.name || file.name === 'blob' || file.name === '') { + const extension = file.type.split('/')[1] || 'jpg'; + const newFileName = `camera-${Date.now()}.${extension}`; + fileToUpload = new File([file], newFileName, { type: file.type }); + } + uploadMutation.mutate(fileToUpload); } }; From 26d02dd744a6f356c4cf3e8072c8650db21ff9b3 Mon Sep 17 00:00:00 2001 From: michaelschal <35957947-michaelschal@users.noreply.replit.com> Date: Tue, 14 Oct 2025 10:12:06 +0000 Subject: [PATCH 3/3] Fix camera upload errors on Android and improve mobile performance Resolves Android camera capture failures due to invalid filenames by implementing dynamic filename generation. Optimizes mobile performance for media upload pages with adaptive loading, optimized image URLs, lazy loading, and responsive grid layouts. Adds camera functionality to the media library and enables video publishing for Facebook posts and stories. Replit-Commit-Author: Agent Replit-Commit-Session-Id: ae4037a0-2a6f-4530-9bac-79b543286bda Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/397bca8c-984f-43ff-841a-10897aeb8140/ae4037a0-2a6f-4530-9bac-79b543286bda/vZocxw2 --- replit.md | 1 + 1 file changed, 1 insertion(+) diff --git a/replit.md b/replit.md index 463934a..24f59b3 100644 --- a/replit.md +++ b/replit.md @@ -11,6 +11,7 @@ Preferred communication style: Simple, everyday language. ## Recent Changes ### October 14, 2025 +- **Android Camera Upload Fix**: Fixed critical Android camera capture bug where uploads failed with 400 error. Android devices send captured files with invalid names (empty, 'blob', etc.) that Multer rejects. Solution: `handleCameraCapture` now detects invalid filenames and creates new File object with generated name `camera-${timestamp}.${extension}` while preserving MIME type. Applied to both new-post and media-upload components. iPhone functionality unaffected. - **Mobile Performance Optimizations**: Implemented comprehensive mobile speed optimizations for "Nouvelle publication" and "Médiathèque" pages. Changes include: (1) Adaptive initial loading - 6 media items on mobile (<768px), 12 on desktop; (2) Optimized thumbnail URLs - replaced `originalUrl` with `facebookFeedUrl` (1080x1080 Cloudinary transformed images) for 70-90% reduction in data transfer while keeping `originalUrl` for zoom/preview quality; (3) Native lazy loading - added `loading="lazy"` attribute to all `` tags for deferred off-screen image loading; (4) Responsive grid layout - 2 columns on mobile, 3 on desktop (sm:grid-cols-3) for better touch targets. Expected impact: Initial load time reduced from 3-5s to <1s on mobile devices. - **Camera Capture in Media Library**: Added camera button 📷 to MediaUpload component, mirroring functionality from new-post page. Mobile users (lg:hidden) can now capture photos/videos directly from device camera and auto-upload to media library. Implementation includes hidden file input with `capture="environment"`, `handleCameraCapture` handler with input value reset (`e.target.value = ''`) to enable repeated captures, and integration with existing `uploadMutation` for seamless cloud storage. - **Video Publishing for Facebook**: Implemented complete video support for Facebook feed and stories. Added `publishVideoPost()` method using `/videos` endpoint with `file_url` parameter for feed videos, and `publishVideoStory()` using `/video_stories` endpoint for story videos. Modified `publishStory()` to detect video media type and route to appropriate handler. Updated `publishPost()` logic to separate image vs video media filtering and use correct publishing methods. Video preview now uses `