@livelike/react-native
Version:
LiveLike React Native package
33 lines (30 loc) • 986 B
text/typescript
import { useCallback } from 'react';
import { useAnalytics } from './useAnalytics';
import { useWidget } from './useWidget';
import {
WidgetCreateInteractionActionArg,
useWidgetInteractionActions,
} from './useWidgetInteractionActions';
export type UseWidgetSubmitActionArg = {
widgetId: string;
};
export function useWidgetSubmitAction({ widgetId }: UseWidgetSubmitActionArg) {
const widget = useWidget({ widgetId });
const { trackEvent } = useAnalytics();
const { createWidgetInteractionAction } = useWidgetInteractionActions({
widgetId,
});
const onInteractionSubmit = useCallback(
({ interactionItem }: WidgetCreateInteractionActionArg) => {
return createWidgetInteractionAction({ interactionItem }).then((res) => {
trackEvent('Widget Submitted', {
widget,
interactionItem,
});
return res;
});
},
[widgetId, createWidgetInteractionAction, trackEvent]
);
return { onInteractionSubmit };
}