diff --git a/packages/admin-portal/src/resources/Candidate/CandidateDataForm.tsx b/packages/admin-portal/src/resources/Candidate/CandidateDataForm.tsx index e9933ce2c52..ecacf8c19b4 100644 --- a/packages/admin-portal/src/resources/Candidate/CandidateDataForm.tsx +++ b/packages/admin-portal/src/resources/Candidate/CandidateDataForm.tsx @@ -84,7 +84,6 @@ export const CandidateDataForm: React.FC<{ const notify = useNotify() const refresh = useRefresh() const {globalSettings} = useContext(SettingsContext) - const [enabledDeleteImage, setEnabledDeleteImage] = useState(true) const getImageUrl = useGetDocumentUrl() const [value, setValue] = useState(0) @@ -136,7 +135,7 @@ export const CandidateDataForm: React.FC<{ } }, [electionEvent?.presentation?.language_conf, election?.presentation?.language_conf]) - const [updateImage] = useUpdate() + const [updateImage, {isPending: isDeletingImage}] = useUpdate() const parseValues = useCallback( (incoming: Sequent_Backend_Candidate_Extended): Sequent_Backend_Candidate_Extended => { @@ -294,24 +293,25 @@ export const CandidateDataForm: React.FC<{ } } - const removeImage = () => { + const removeImage = async (e: React.MouseEvent) => { + e.stopPropagation() try { - setEnabledDeleteImage(false) - let presentation = removeUrlFromPresentation(record) - updateImage("sequent_backend_candidate", { - id: record.id, - data: { - image_document_id: null, - presentation: presentation, + const presentation = removeUrlFromPresentation(record) + await updateImage( + "sequent_backend_candidate", + { + id: record.id, + data: { + image_document_id: null, + presentation: presentation, + }, }, - }) - - setEnabledDeleteImage(true) + {returnPromise: true} + ) refresh() - } catch (e) { - console.log("error :>> ", e) + } catch (err) { + console.log("error :>> ", err) notify(t("electionScreen.error.fileError"), {type: "error"}) - setEnabledDeleteImage(true) } } @@ -347,11 +347,12 @@ export const CandidateDataForm: React.FC<{ } const DeleteImage: React.FC = () => ( - - {!enabledDeleteImage ? ( - - ) : null} - + void removeImage(e)} disabled={isDeletingImage}> + {isDeletingImage ? ( + + ) : ( + + )} )