From 01054d5c50f9338c61215e820398ae53685d7e37 Mon Sep 17 00:00:00 2001 From: Laurian-Dufrechou Date: Sun, 2 Apr 2023 22:50:26 +0200 Subject: [PATCH 1/2] fix(deleteImage): image not showing after deleted --- src/components/ModalModifyImages.jsx | 4 +--- src/pages/api/file/deleteFile.js | 2 +- src/pages/api/file/uploadFile.js | 2 +- src/pages/userProfile.tsx | 6 +++--- 4 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/components/ModalModifyImages.jsx b/src/components/ModalModifyImages.jsx index 4f475cc..f31de9a 100644 --- a/src/components/ModalModifyImages.jsx +++ b/src/components/ModalModifyImages.jsx @@ -77,11 +77,9 @@ export default function ModalModifyImages(props) { if (index > -1) { newListImage.splice(index, 1); - setlistImage(newListImage); + setlistImage([...newListImage]); } - // setlistImage(listImage.filter((image) => image !== fileName)); - const imageDeleteOptions = { method: "DELETE", body: JSON.stringify({ fileName: fileName.split("/").pop() }), diff --git a/src/pages/api/file/deleteFile.js b/src/pages/api/file/deleteFile.js index 5d6af83..fb8c7d2 100644 --- a/src/pages/api/file/deleteFile.js +++ b/src/pages/api/file/deleteFile.js @@ -11,7 +11,7 @@ export const config = { const deleteImage = async (req, res) => { const body = await JSON.parse(req.body); await fs.unlinkSync(`./public/imageUsers/${body.fileName}`); - res.status(200).send("image deleted"); + res.status(204).send({ message: "File deleted", file: body.fileName }); }; export default (req, res) => { diff --git a/src/pages/api/file/uploadFile.js b/src/pages/api/file/uploadFile.js index c96648d..3b60a83 100644 --- a/src/pages/api/file/uploadFile.js +++ b/src/pages/api/file/uploadFile.js @@ -20,7 +20,7 @@ const post = async (req, res) => { return; } saveFile(files.file); - return res.status(201).send("image saved"); + return res.status(201).send({ message: "File uploaded", file: files.file }); }); }; diff --git a/src/pages/userProfile.tsx b/src/pages/userProfile.tsx index 55c2cf5..d1ff00e 100644 --- a/src/pages/userProfile.tsx +++ b/src/pages/userProfile.tsx @@ -104,7 +104,7 @@ export default function UserProfile() { return ( - + {userData.images ? ( @@ -139,7 +139,7 @@ export default function UserProfile() { Modifiez les champs en les selectionnants -
+ @@ -355,7 +355,7 @@ export default function UserProfile() { - +
From 912ac833b99347a0213d0a74a8a8c075be2bf647 Mon Sep 17 00:00:00 2001 From: Laurian-Dufrechou Date: Sun, 2 Apr 2023 23:40:41 +0200 Subject: [PATCH 2/2] feat(Error display form userProfile): Error is displayed on wrong input of Editable rules : 240 car max on bio, firstName and lastName required --- src/pages/userProfile.tsx | 300 +++++++++++++++++++++----------------- 1 file changed, 163 insertions(+), 137 deletions(-) diff --git a/src/pages/userProfile.tsx b/src/pages/userProfile.tsx index d1ff00e..3a9cf66 100644 --- a/src/pages/userProfile.tsx +++ b/src/pages/userProfile.tsx @@ -35,7 +35,11 @@ export default function UserProfile() { const toast = useToast(); const [isLoading, setIsLoading] = useState(false); - const { handleSubmit, control } = useForm(); + const { + handleSubmit, + control, + formState: { errors }, + } = useForm(); const [userData, setUserData] = useState({}); @@ -76,7 +80,6 @@ export default function UserProfile() { setIsLoading(true); fetch(`/api/users/${user.id}`, options) .then((res) => { - console.log(res); setIsLoading(false); toast({ title: `Modifications effectuées`, @@ -140,119 +143,139 @@ export default function UserProfile() { - - - + + + Prénom : ( - - - - - )} + defaultValue={ + user.firstName === null ? "" : user.firstName + } + rules={{ + required: { value: true, message: "Prénom requis" }, + }} + render={({ field }) => { + return ( + + + + + ); + }} /> - - + + {errors.firstName?.message} + + + + + Nom : ( { - // setUserData({ ...userData, lastName: value }); - // }} > )} /> - - - - Date de naissance : - - - - - - - - - - - Ville : - - - - - - - - Adresse mail : - - - - - - - - + + {errors.lastName?.message} + + + + + + Date de naissance : + + + + + + + + + + + Ville : + + + + + + + + Adresse mail : + + + + + + + + + À propos : ( )} /> + + {errors.bio?.message} + + + + + + + + Genre : + + ( + { + // setUserData({ ...userData, gender: value }); + // }} + > + + + {getTextGender(Gender.MALE)} + + + {getTextGender(Gender.FEMALE)} + + + {getTextGender(Gender.OTHER)} + + + {getTextGender(Gender.UNKNOWN)} + + + + )} + /> - - - - - Genre : - - ( - { - // setUserData({ ...userData, gender: value }); - // }} - > - - - {getTextGender(Gender.MALE)} - - - {getTextGender(Gender.FEMALE)} - - - {getTextGender(Gender.OTHER)} - - - {getTextGender(Gender.UNKNOWN)} - - - - )} - /> - - {/* + {/* Préference : @@ -343,18 +370,17 @@ export default function UserProfile() { */} - - -
- -
- +
+ +
+ +