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);
try {
const tid = localStorage.getItem('ctms_tenant_id') || '';
const success = editingUser
? await updateUser(editingUser.id, formData)
: await createMember({ ...formData, tenant_id: tid });
if (success) { setIsModalOpen(false); loadData(); }
} catch (err) { alert('Erro ao salvar'); } finally { setIsSaving(false); }
if (editingUser) {
const success = await updateUser(editingUser.id, formData);
if (success) { setIsModalOpen(false); loadData(); }
} else {
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 () => {

View File

@@ -88,10 +88,16 @@ export const updateUser = async (id: string, userData: any): Promise<boolean> =>
headers: getHeaders(),
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) {
console.error("API Error (updateUser):", error);
return false;
throw error;
}
};
@@ -125,10 +131,16 @@ export const createMember = async (userData: any): Promise<boolean> => {
headers: getHeaders(),
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) {
console.error("API Error (createMember):", error);
return false;
throw error;
}
};