From de6fada00d6cc19eeea98b2a2fb1988f115f62ae Mon Sep 17 00:00:00 2001 From: VladVlad Date: Fri, 10 Feb 2023 11:49:24 +0400 Subject: [PATCH] feat: add handler for submit error in hubspot forms --- .../HubspotForm/__stories__/HubspotForm.stories.tsx | 1 + src/sub-blocks/HubspotForm/index.tsx | 4 +++- src/utils/hubspot.ts | 6 ++++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/sub-blocks/HubspotForm/__stories__/HubspotForm.stories.tsx b/src/sub-blocks/HubspotForm/__stories__/HubspotForm.stories.tsx index 994f9f3df..1219e560f 100644 --- a/src/sub-blocks/HubspotForm/__stories__/HubspotForm.stories.tsx +++ b/src/sub-blocks/HubspotForm/__stories__/HubspotForm.stories.tsx @@ -26,6 +26,7 @@ Default.args = { /*eslint-disable no-console */ onBeforeLoad: () => console.log('onBeforeLoad'), onBeforeSubmit: () => console.log('onBeforeSubmit'), + onSubmitError: () => console.log('onSubmitError'), onLoad: () => console.log('onLoad'), onSubmit: () => console.log('onSubmit'), /*eslint-enable */ diff --git a/src/sub-blocks/HubspotForm/index.tsx b/src/sub-blocks/HubspotForm/index.tsx index 5ee5db777..831babd5b 100644 --- a/src/sub-blocks/HubspotForm/index.tsx +++ b/src/sub-blocks/HubspotForm/index.tsx @@ -29,6 +29,7 @@ const HubspotForm: React.FunctionComponent = (props) => { onSubmit, onBeforeLoad, onLoad, + onSubmitError, } = props; const handleMetrika = useMetrika(); @@ -43,12 +44,13 @@ const HubspotForm: React.FunctionComponent = (props) => { onBeforeLoad, onBeforeSubmit, onLoad, + onSubmitError, onSubmit: (e) => { handleMetrika?.({pixelEvents}); onSubmit?.(e); }, }), - [onBeforeLoad, onBeforeSubmit, onLoad, handleMetrika, pixelEvents, onSubmit], + [onBeforeLoad, onBeforeSubmit, onLoad, handleMetrika, pixelEvents, onSubmit, onSubmitError], ); useHandleHubspotEvents(handlers, formId); diff --git a/src/utils/hubspot.ts b/src/utils/hubspot.ts index f22838a5d..523da562b 100644 --- a/src/utils/hubspot.ts +++ b/src/utils/hubspot.ts @@ -3,6 +3,7 @@ export type HubspotEventName = | 'onFormReady' | 'onFormSubmit' | 'onFormSubmitted' + | 'onFormError' | `_${string}`; export interface HubspotEventData { @@ -26,6 +27,7 @@ export interface HubspotEventHandlers { onBeforeSubmit?: (arg: HubspotEventData) => void; onSubmit?: (arg: HubspotEventData) => void; onLoad?: (arg: HubspotEventData) => void; + onSubmitError?: (arg: HubspotEventData) => void; } export function loopBackHabspotEvents(formId: string) { @@ -73,6 +75,10 @@ export function handleHubspotEvents(handlers: HubspotEventHandlers, formId: stri handlers.onSubmit?.(data); break; } + case 'onFormError': { + handlers.onSubmitError?.(data); + break; + } default: break; }