mirror of
https://github.com/R0m1k3/noteflow.git
synced 2026-10-11 17:29:37 +02:00
Merge pull request #125 from R0m1k3/claude/fix-notes-sync-issue-01AMeEdrKQErsM7bvhKkqEEF
fix: improve image upload error handling on mobile and desktop
This commit is contained in:
2 files changed
+30
-5
No files matched your search
+15
-3
@@ -1335,17 +1335,29 @@ const Index = () => {
|
|||||||
<input
|
<input
|
||||||
id="image-upload"
|
id="image-upload"
|
||||||
type="file"
|
type="file"
|
||||||
accept="image/*"
|
accept="image/jpeg,image/png,image/webp,image/gif"
|
||||||
className="hidden"
|
className="hidden"
|
||||||
onChange={async (e) => {
|
onChange={async (e) => {
|
||||||
if (e.target.files && e.target.files[0] && openNote?.id) {
|
if (e.target.files && e.target.files[0] && openNote?.id) {
|
||||||
|
const file = e.target.files[0];
|
||||||
|
|
||||||
|
// Vérifier la taille du fichier (5MB max)
|
||||||
|
const maxSize = 5 * 1024 * 1024; // 5MB
|
||||||
|
if (file.size > maxSize) {
|
||||||
|
showError("L'image est trop grande (max 5MB)");
|
||||||
|
e.target.value = '';
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const image = await NotesService.uploadImage(openNote.id, e.target.files[0]);
|
const image = await NotesService.uploadImage(openNote.id, file);
|
||||||
if (image) {
|
if (image) {
|
||||||
const updatedImages = [...(openNote.images || []), image];
|
const updatedImages = [...(openNote.images || []), image];
|
||||||
setOpenNote({ ...openNote, images: updatedImages });
|
setOpenNote({ ...openNote, images: updatedImages });
|
||||||
await handleUpdateNote({ images: updatedImages });
|
setNotes(prev => prev.map(note => note.id === openNote.id ? { ...note, images: updatedImages } : note));
|
||||||
showSuccess("Image ajoutée");
|
showSuccess("Image ajoutée");
|
||||||
|
} else {
|
||||||
|
showError("Erreur lors de l'upload de l'image");
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
showError("Erreur lors de l'upload de l'image");
|
showError("Erreur lors de l'upload de l'image");
|
||||||
|
|||||||
@@ -118,12 +118,25 @@ export default function NoteDetailPage() {
|
|||||||
|
|
||||||
const handleImageUpload = async (e: React.ChangeEvent<HTMLInputElement>) => {
|
const handleImageUpload = async (e: React.ChangeEvent<HTMLInputElement>) => {
|
||||||
if (!e.target.files || !e.target.files[0] || !note?.id) return;
|
if (!e.target.files || !e.target.files[0] || !note?.id) return;
|
||||||
|
|
||||||
|
const file = e.target.files[0];
|
||||||
|
|
||||||
|
// Vérifier la taille du fichier (5MB max)
|
||||||
|
const maxSize = 5 * 1024 * 1024; // 5MB
|
||||||
|
if (file.size > maxSize) {
|
||||||
|
showError("L'image est trop grande (max 5MB)");
|
||||||
|
e.target.value = '';
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const image = await NotesService.uploadImage(note.id, e.target.files[0]);
|
const image = await NotesService.uploadImage(note.id, file);
|
||||||
if (image) {
|
if (image) {
|
||||||
const updatedImages = [...(note.images || []), image];
|
const updatedImages = [...(note.images || []), image];
|
||||||
setNote({ ...note, images: updatedImages });
|
setNote({ ...note, images: updatedImages });
|
||||||
showSuccess("Image ajoutée");
|
showSuccess("Image ajoutée");
|
||||||
|
} else {
|
||||||
|
showError("Erreur lors de l'upload de l'image");
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
showError("Erreur lors de l'upload");
|
showError("Erreur lors de l'upload");
|
||||||
@@ -228,7 +241,7 @@ export default function NoteDetailPage() {
|
|||||||
<input
|
<input
|
||||||
id="image-upload"
|
id="image-upload"
|
||||||
type="file"
|
type="file"
|
||||||
accept="image/*"
|
accept="image/jpeg,image/png,image/webp,image/gif"
|
||||||
className="hidden"
|
className="hidden"
|
||||||
onChange={handleImageUpload}
|
onChange={handleImageUpload}
|
||||||
/>
|
/>
|
||||||
|
|||||||
Reference in new issue
Block a user