@atlaskit/editor-plugin-media-insert
Version:
Media Insert plugin for @atlaskit/editor-core
52 lines • 2.25 kB
JavaScript
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]);
}