@atlaskit/editor-plugin-card
Version:
Card plugin for @atlaskit/editor-core
42 lines • 1.87 kB
JavaScript
import React, { useCallback, useEffect } from 'react';
import { useAnalyticsEvents } from '@atlaskit/analytics-next/useAnalyticsEvents';
import { Pulse } from '@atlaskit/linking-common';
import { isLocalStorageKeyDiscovered, markLocalStorageKeyDiscovered } from '../local-storage';
export var DiscoveryPulse = function DiscoveryPulse(_ref) {
var children = _ref.children,
localStorageKey = _ref.localStorageKey,
localStorageKeyExpirationInMs = _ref.localStorageKeyExpirationInMs,
_ref$discoveryMode = _ref.discoveryMode,
discoveryMode = _ref$discoveryMode === void 0 ? 'iteration' : _ref$discoveryMode,
shouldShowPulse = _ref.shouldShowPulse,
testId = _ref.testId,
isInline = _ref.isInline;
var discovered = isLocalStorageKeyDiscovered(localStorageKey);
var showPulse = shouldShowPulse !== null && shouldShowPulse !== void 0 ? shouldShowPulse : !discovered;
var _useAnalyticsEvents = useAnalyticsEvents(),
createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
useEffect(function () {
if (showPulse) {
createAnalyticsEvent({
action: 'viewed',
actionSubject: 'pulse',
eventType: 'ui',
attributes: {
pulseIdentifier: localStorageKey
}
}).fire('media');
}
}, [createAnalyticsEvent, discovered, localStorageKey, showPulse]);
var onDiscovery = useCallback(function () {
if (!discovered) {
markLocalStorageKeyDiscovered(localStorageKey, localStorageKeyExpirationInMs);
}
}, [discovered, localStorageKey, localStorageKeyExpirationInMs]);
return /*#__PURE__*/React.createElement(Pulse, {
onAnimationIteration: discoveryMode === 'iteration' ? onDiscovery : undefined,
onAnimationStart: discoveryMode === 'start' ? onDiscovery : undefined,
showPulse: showPulse,
testId: testId,
isInline: isInline
}, children);
};