diff --git a/frontend/src/components/forms/ExpenseForm/index.jsx b/frontend/src/components/forms/ExpenseForm/index.jsx
index ffb2f00c..040ad8d9 100644
--- a/frontend/src/components/forms/ExpenseForm/index.jsx
+++ b/frontend/src/components/forms/ExpenseForm/index.jsx
@@ -41,7 +41,7 @@ export default function ExpenseForm({ groupData: group }) {
const handleExpenseSubmit = useCallback(
async e => {
e.preventDefault();
-
+ if (isSubmitting) return;
if (!distributionOK) {
return customToast(
'Erro',
@@ -92,7 +92,7 @@ export default function ExpenseForm({ groupData: group }) {
setIsSubmitting(false);
}
},
- [amount, divisionAmount, distributionOK]
+ [amount, divisionAmount, distributionOK, isSubmitting]
);
const removeMember = memberId => {
@@ -169,16 +169,12 @@ export default function ExpenseForm({ groupData: group }) {
)}
{/* Botão de envio */}
-
+
{isSubmitting ? 'Enviando...' : 'Adicionar Despesa'}
diff --git a/frontend/src/components/forms/GroupForm.jsx b/frontend/src/components/forms/GroupForm.jsx
index 189e8f6b..b2df0724 100644
--- a/frontend/src/components/forms/GroupForm.jsx
+++ b/frontend/src/components/forms/GroupForm.jsx
@@ -1,4 +1,4 @@
-import { useState } from 'react';
+import { useCallback, useState } from 'react';
import { useMutation, useQueryClient } from '@tanstack/react-query';
import InputUI from '../ui/Input';
import ButtonUI from '../ui/Button';
@@ -46,15 +46,18 @@ export default function GroupForm({ page }) {
const IconComponent = entry.icon;
const iconColor = entry.color;
- const handleSubmit = async e => {
- e.preventDefault();
-
- mutateAsync({
- name: groupName,
- description,
- icon: selectedIcon,
- });
- };
+ const handleSubmit = useCallback(
+ async e => {
+ e.preventDefault();
+ if (isPending || isDisabled) return;
+ mutateAsync({
+ name: groupName,
+ description,
+ icon: selectedIcon,
+ });
+ },
+ [isPending, isDisabled]
+ );
return (