fix: propagate and display backend errors correctly when creating or updating users
All checks were successful
Build and Deploy / build-and-push (push) Successful in 58s

This commit is contained in:
Cauê Faleiros
2026-03-03 18:12:57 -03:00
parent e050cbfab1
commit 997546915f
2 changed files with 29 additions and 9 deletions

View File

@@ -43,11 +43,19 @@ export const TeamManagement: React.FC = () => {
setIsSaving(true); setIsSaving(true);
try { try {
const tid = localStorage.getItem('ctms_tenant_id') || ''; const tid = localStorage.getItem('ctms_tenant_id') || '';
const success = editingUser if (editingUser) {
? await updateUser(editingUser.id, formData) const success = await updateUser(editingUser.id, formData);
: await createMember({ ...formData, tenant_id: tid }); if (success) { setIsModalOpen(false); loadData(); }
if (success) { setIsModalOpen(false); loadData(); } } else {
} catch (err) { alert('Erro ao salvar'); } finally { setIsSaving(false); } await createMember({ ...formData, tenant_id: tid });
setIsModalOpen(false);
loadData();
}
} catch (err: any) {
alert(err.message || 'Erro ao salvar membro. Verifique se o e-mail já não está cadastrado.');
} finally {
setIsSaving(false);
}
}; };
const handleConfirmDelete = async () => { const handleConfirmDelete = async () => {

View File

@@ -88,10 +88,16 @@ export const updateUser = async (id: string, userData: any): Promise<boolean> =>
headers: getHeaders(), headers: getHeaders(),
body: JSON.stringify(userData) body: JSON.stringify(userData)
}); });
return response.ok;
if (!response.ok) {
const errorData = await response.json().catch(() => null);
throw new Error(errorData?.error || 'Erro ao atualizar usuário no servidor');
}
return true;
} catch (error) { } catch (error) {
console.error("API Error (updateUser):", error); console.error("API Error (updateUser):", error);
return false; throw error;
} }
}; };
@@ -125,10 +131,16 @@ export const createMember = async (userData: any): Promise<boolean> => {
headers: getHeaders(), headers: getHeaders(),
body: JSON.stringify(userData) body: JSON.stringify(userData)
}); });
return response.ok;
if (!response.ok) {
const errorData = await response.json().catch(() => null);
throw new Error(errorData?.error || 'Erro ao criar membro no servidor');
}
return true;
} catch (error) { } catch (error) {
console.error("API Error (createMember):", error); console.error("API Error (createMember):", error);
return false; throw error;
} }
}; };