UNPKG

@atlaskit/editor-plugin-card

Version:

Card plugin for @atlaskit/editor-core

42 lines 1.87 kB
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); };