UNPKG

@atlaskit/editor-plugin-media-insert

Version:

Media Insert plugin for @atlaskit/editor-core

52 lines 2.25 kB
import React from 'react'; import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE } from '@atlaskit/editor-common/analytics'; export function useAnalyticsEvents(dispatchAnalyticsEvent) { const onUploadButtonClickedAnalytics = React.useCallback(() => { dispatchAnalyticsEvent === null || dispatchAnalyticsEvent === void 0 ? void 0 : dispatchAnalyticsEvent({ action: ACTION.CLICKED, actionSubject: ACTION_SUBJECT.BUTTON, actionSubjectId: ACTION_SUBJECT_ID.UPLOAD_MEDIA, eventType: EVENT_TYPE.UI }); }, [dispatchAnalyticsEvent]); const onUploadCommencedAnalytics = React.useCallback(mediaUploadSource => { dispatchAnalyticsEvent === null || dispatchAnalyticsEvent === void 0 ? void 0 : dispatchAnalyticsEvent({ action: ACTION.UPLOAD_COMMENCED, actionSubject: ACTION_SUBJECT.MEDIA, actionSubjectId: ACTION_SUBJECT_ID.UPLOAD_MEDIA, eventType: EVENT_TYPE.OPERATIONAL, attributes: { mediaUploadSource } }); }, [dispatchAnalyticsEvent]); const onUploadSuccessAnalytics = React.useCallback(mediaUploadSource => { dispatchAnalyticsEvent === null || dispatchAnalyticsEvent === void 0 ? void 0 : dispatchAnalyticsEvent({ action: ACTION.UPLOAD_SUCCEEDED, actionSubject: ACTION_SUBJECT.MEDIA, actionSubjectId: ACTION_SUBJECT_ID.UPLOAD_MEDIA, eventType: EVENT_TYPE.OPERATIONAL, attributes: { mediaUploadSource } }); }, [dispatchAnalyticsEvent]); const onUploadFailureAnalytics = React.useCallback((reason, mediaUploadSource) => { dispatchAnalyticsEvent === null || dispatchAnalyticsEvent === void 0 ? void 0 : dispatchAnalyticsEvent({ action: ACTION.UPLOAD_FAILED, actionSubject: ACTION_SUBJECT.MEDIA, actionSubjectId: ACTION_SUBJECT_ID.UPLOAD_MEDIA, eventType: EVENT_TYPE.OPERATIONAL, attributes: { reason, mediaUploadSource } }); }, [dispatchAnalyticsEvent]); return React.useMemo(() => ({ onUploadButtonClickedAnalytics, onUploadCommencedAnalytics, onUploadSuccessAnalytics, onUploadFailureAnalytics }), [onUploadButtonClickedAnalytics, onUploadCommencedAnalytics, onUploadSuccessAnalytics, onUploadFailureAnalytics]); }