mitre-form-component 2.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -74,6 +74,8 @@ const products = JSON.parse(process.env.VITE_PRODUCT_ID!);
74
74
  // idProdutoTerceiro={produto.idTerceiro} //[Opcional, quando canal !== "form"]
75
75
  // idEmpreendimento={produto.id} //[Opcional, quando canal !== "form"]
76
76
  // naoCriarEvento={false} //[Opcional] Override do default (que é true em chat/whatsapp).
77
+ onSuccess={(requestBody, leadId) => console.log('Formulário enviado com sucesso!', requestBody, leadId)} //[Opcional] Callback de sucesso, útil para tracking
78
+ onError={(error) => console.error('Erro ao enviar formulário:', error)} //[Opcional] Callback de erro
77
79
  />;
78
80
  ```
79
81
 
@@ -148,6 +150,8 @@ O `MitreFormComponent` aceita as seguintes props:
148
150
  - **`idProdutoTerceiro`** (opcional, `string | number`): Repassado no body do POST `/leads` e no `virtual_obj` (modo chat) quando `canal !== "form"`.
149
151
  - **`idEmpreendimento`** (opcional, `string | number`): Repassado no body do POST `/leads` e no `virtual_obj` (modo chat) quando `canal !== "form"`.
150
152
  - **`naoCriarEvento`** (opcional, boolean): Se `true`, envia `naoCriarEvento: true` no body do POST `/leads` (e no `virtual_obj` no modo chat) para instruir o CRM a não criar evento associado ao lead. **Default automático:** `true` quando `canal === "chat"` ou `canal === "whatsapp"` (paridade com o fluxo antigo do `atendimento.html`); `false` quando `canal === "form"`. Passe `false` explicitamente para forçar a criação do evento mesmo em chat/whatsapp.
153
+ - **`onSuccess`** (opcional, função): Callback executado quando o POST `/leads` retorna sucesso, em qualquer canal. Recebe `(requestBody, leadId)`. Útil para tracking (GTM, Analytics), redirect customizado ou logging. O componente continua exibindo a UI de sucesso (mensagem em `canal=form`, modal em `canal=whatsapp`/`canal=chat`) independente do callback.
154
+ - **`onError`** (opcional, função): Callback executado quando o POST `/leads` falha. Recebe `Error`. Útil para tracking de erro (Sentry, Datadog, GTM). O componente continua exibindo a UI de erro independente do callback.
151
155
 
152
156
  ---
153
157
 
@@ -208,7 +212,7 @@ import { MitreFormComponent, PreferenciaContato } from "mitre-form-component";
208
212
 
209
213
  ## 🌐 Ambiente
210
214
 
211
- A partir da v1.0, o componente gerencia internamente `apiUrl`, `apiToken`, `whatsappPhone` e `chatUrl`. A landing **não passa mais essas props** — apenas escolhe o ambiente:
215
+ A partir da v2.0, o componente gerencia internamente `apiUrl`, `apiToken`, `whatsappPhone` e `chatUrl`. A landing **não passa mais essas props** — apenas escolhe o ambiente:
212
216
 
213
217
  ```tsx
214
218
  <MitreFormComponent products={products} ambiente="prod" /> // produção
package/dist/index.cjs CHANGED
@@ -1480,7 +1480,9 @@ var MitreFormComponent = import_react8.default.forwardRef(({
1480
1480
  showPreferenciaContato = false,
1481
1481
  idProdutoTerceiro,
1482
1482
  idEmpreendimento,
1483
- naoCriarEvento
1483
+ naoCriarEvento,
1484
+ onSuccess,
1485
+ onError
1484
1486
  }, ref) => {
1485
1487
  useMontserratFont();
1486
1488
  const [loading, setIsLoading] = (0, import_react8.useState)(false);
@@ -1658,6 +1660,7 @@ var MitreFormComponent = import_react8.default.forwardRef(({
1658
1660
  const responseData = await response.json();
1659
1661
  const leadId = responseData.leadId || responseData.id || "";
1660
1662
  resetForm();
1663
+ onSuccess?.(requestBody, leadId);
1661
1664
  if (canal === "whatsapp") {
1662
1665
  setActionModal({
1663
1666
  kind: "success",
@@ -1683,11 +1686,13 @@ var MitreFormComponent = import_react8.default.forwardRef(({
1683
1686
  setSuccessMessage("Mensagem enviada com sucesso!");
1684
1687
  }
1685
1688
  } catch (err) {
1689
+ const error2 = err instanceof Error ? err : new Error("Erro desconhecido");
1686
1690
  if (canal === "whatsapp" || canal === "chat") {
1687
1691
  setActionModal({ kind: "error" });
1688
1692
  } else {
1689
1693
  handleError(err);
1690
1694
  }
1695
+ onError?.(error2);
1691
1696
  } finally {
1692
1697
  setIsLoading(false);
1693
1698
  }