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 +5 -1
- package/dist/index.cjs +6 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +14 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
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
|
|
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
|
}
|