@atlaskit/rovo-agent-analytics 0.13.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # @atlaskit/rovo-agent-analytics
2
2
 
3
+ ## 0.14.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`dd26e8d5e8e1b`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/dd26e8d5e8e1b) -
8
+ Update rovo agent analytics track landing
9
+
3
10
  ## 0.13.0
4
11
 
5
12
  ### Minor Changes
@@ -46,19 +46,19 @@ var AgentCommonActions = exports.AgentCommonActions = /*#__PURE__*/function (Age
46
46
  AgentCommonActions["UNVERIFY"] = "unverify";
47
47
  return AgentCommonActions;
48
48
  }({});
49
+ var globalEventConfig = (0, _utils.getDefaultTrackEventConfig)();
49
50
  var useRovoAgentActionAnalytics = exports.useRovoAgentActionAnalytics = function useRovoAgentActionAnalytics(commonAttributes) {
50
51
  var analyticsContext = (0, _react.useContext)(_analyticsNext.AnalyticsReactContext);
51
52
  var _useAnalyticsEvents = (0, _analyticsNext.useAnalyticsEvents)(),
52
53
  createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
53
- var eventConfig = (0, _react.useMemo)(function () {
54
- return (0, _utils.getDefaultTrackEventConfig)();
55
- }, []);
54
+ var commonAttributesRef = (0, _react.useRef)(commonAttributes);
56
55
  var fireAnalyticsEvent = (0, _react.useCallback)(function (event) {
57
- var attributes = _objectSpread(_objectSpread(_objectSpread({}, (0, _utils.getAttributesFromContexts)(analyticsContext.getAtlaskitAnalyticsContext())), commonAttributes), event.attributes);
58
- createAnalyticsEvent(_objectSpread(_objectSpread(_objectSpread({}, eventConfig), event), {}, {
56
+ var attributes = _objectSpread(_objectSpread(_objectSpread({}, (0, _utils.getAttributesFromContexts)(analyticsContext.getAtlaskitAnalyticsContext())), commonAttributesRef.current), event.attributes);
57
+ createAnalyticsEvent(_objectSpread(_objectSpread(_objectSpread({}, globalEventConfig), event), {}, {
59
58
  attributes: attributes
60
59
  })).fire(_constants.ANALYTICS_CHANNEL);
61
- }, [createAnalyticsEvent, eventConfig, commonAttributes, analyticsContext]);
60
+ }, [createAnalyticsEvent, analyticsContext] // keep number of dependencies minimal to prevent re-rendering
61
+ );
62
62
  var trackAgentAction = (0, _react.useCallback)(function (action, attributes) {
63
63
  fireAnalyticsEvent({
64
64
  actionSubject: 'rovoAgent',
@@ -35,6 +35,7 @@ var useRovoAgentCSID = exports.useRovoAgentCSID = function useRovoAgentCSID() {
35
35
  refresh: function refresh() {
36
36
  var newCSID = generateCSID();
37
37
  setCSID(newCSID);
38
+ return newCSID;
38
39
  },
39
40
  clear: function clear() {
40
41
  // remove CSID query parameter
@@ -44,6 +45,7 @@ var useRovoAgentCSID = exports.useRovoAgentCSID = function useRovoAgentCSID() {
44
45
 
45
46
  // reset state
46
47
  setCSID(null);
48
+ return null;
47
49
  }
48
50
  };
49
51
  }, []);
@@ -33,25 +33,27 @@ var AgentCreateActions = exports.AgentCreateActions = /*#__PURE__*/function (Age
33
33
  AgentCreateActions["DISCARD"] = "createDiscard";
34
34
  return AgentCreateActions;
35
35
  }({});
36
+ var globalEventConfig = (0, _utils.getDefaultTrackEventConfig)();
36
37
  var useRovoAgentCreateAnalytics = exports.useRovoAgentCreateAnalytics = function useRovoAgentCreateAnalytics(commonAttributes) {
37
38
  var _useRovoAgentCSID = (0, _csid.useRovoAgentCSID)(),
38
39
  _useRovoAgentCSID2 = (0, _slicedToArray2.default)(_useRovoAgentCSID, 2),
39
40
  csid = _useRovoAgentCSID2[0],
40
41
  refreshCSID = _useRovoAgentCSID2[1].refresh;
42
+ var analyticsContext = (0, _react.useContext)(_analyticsNext.AnalyticsReactContext);
41
43
  var _useAnalyticsEvents = (0, _analyticsNext.useAnalyticsEvents)(),
42
44
  createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
43
- var eventConfig = (0, _react.useMemo)(function () {
44
- return (0, _utils.getDefaultTrackEventConfig)();
45
- }, []);
45
+ var commonAttributesRef = (0, _react.useRef)(commonAttributes);
46
46
  var fireAnalyticsEvent = (0, _react.useCallback)(function (event) {
47
47
  var referrer = typeof window !== 'undefined' ? window.document.referrer : 'unknown';
48
- createAnalyticsEvent(_objectSpread(_objectSpread(_objectSpread({}, eventConfig), event), {}, {
49
- attributes: _objectSpread(_objectSpread({
50
- csid: csid,
51
- referrer: referrer
52
- }, commonAttributes), event.attributes)
48
+ var attributes = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, (0, _utils.getAttributesFromContexts)(analyticsContext.getAtlaskitAnalyticsContext())), commonAttributesRef.current), event.attributes), {}, {
49
+ csid: csid,
50
+ referrer: referrer
51
+ });
52
+ createAnalyticsEvent(_objectSpread(_objectSpread(_objectSpread({}, globalEventConfig), event), {}, {
53
+ attributes: attributes
53
54
  })).fire(_constants.ANALYTICS_CHANNEL);
54
- }, [createAnalyticsEvent, eventConfig, csid, commonAttributes]);
55
+ }, [createAnalyticsEvent, csid, analyticsContext] // keep number of dependencies minimal to prevent re-rendering
56
+ );
55
57
 
56
58
  /**
57
59
  * This will fire analytics event for intermediate steps in the create agent flow funnel
@@ -90,6 +92,7 @@ var useRovoAgentCreateAnalytics = exports.useRovoAgentCreateAnalytics = function
90
92
  return [csid, {
91
93
  trackCreateSession: trackCreateSession,
92
94
  trackCreateSessionStart: trackCreateSessionStart,
93
- trackCreateSessionError: trackCreateSessionError
95
+ trackCreateSessionError: trackCreateSessionError,
96
+ refreshCSID: refreshCSID
94
97
  }];
95
98
  };
@@ -1,4 +1,4 @@
1
- import { useCallback, useContext, useMemo } from 'react';
1
+ import { useCallback, useContext, useRef } from 'react';
2
2
  import { AnalyticsReactContext, useAnalyticsEvents } from '@atlaskit/analytics-next';
3
3
  import { ANALYTICS_CHANNEL } from '../common/constants';
4
4
  import { getAttributesFromContexts, getDefaultTrackEventConfig } from '../common/utils';
@@ -36,24 +36,26 @@ export let AgentCommonActions = /*#__PURE__*/function (AgentCommonActions) {
36
36
  AgentCommonActions["UNVERIFY"] = "unverify";
37
37
  return AgentCommonActions;
38
38
  }({});
39
+ const globalEventConfig = getDefaultTrackEventConfig();
39
40
  export const useRovoAgentActionAnalytics = commonAttributes => {
40
41
  const analyticsContext = useContext(AnalyticsReactContext);
41
42
  const {
42
43
  createAnalyticsEvent
43
44
  } = useAnalyticsEvents();
44
- const eventConfig = useMemo(() => getDefaultTrackEventConfig(), []);
45
+ const commonAttributesRef = useRef(commonAttributes);
45
46
  const fireAnalyticsEvent = useCallback(event => {
46
47
  const attributes = {
47
48
  ...getAttributesFromContexts(analyticsContext.getAtlaskitAnalyticsContext()),
48
- ...commonAttributes,
49
+ ...commonAttributesRef.current,
49
50
  ...event.attributes
50
51
  };
51
52
  createAnalyticsEvent({
52
- ...eventConfig,
53
+ ...globalEventConfig,
53
54
  ...event,
54
55
  attributes
55
56
  }).fire(ANALYTICS_CHANNEL);
56
- }, [createAnalyticsEvent, eventConfig, commonAttributes, analyticsContext]);
57
+ }, [createAnalyticsEvent, analyticsContext] // keep number of dependencies minimal to prevent re-rendering
58
+ );
57
59
  const trackAgentAction = useCallback((action, attributes) => {
58
60
  fireAnalyticsEvent({
59
61
  actionSubject: 'rovoAgent',
@@ -24,6 +24,7 @@ export const useRovoAgentCSID = () => {
24
24
  refresh: () => {
25
25
  const newCSID = generateCSID();
26
26
  setCSID(newCSID);
27
+ return newCSID;
27
28
  },
28
29
  clear: () => {
29
30
  // remove CSID query parameter
@@ -33,6 +34,7 @@ export const useRovoAgentCSID = () => {
33
34
 
34
35
  // reset state
35
36
  setCSID(null);
37
+ return null;
36
38
  }
37
39
  };
38
40
  }, []);
@@ -1,8 +1,8 @@
1
- import { useCallback, useMemo } from 'react';
2
- import { useAnalyticsEvents } from '@atlaskit/analytics-next';
1
+ import { useCallback, useContext, useRef } from 'react';
2
+ import { AnalyticsReactContext, useAnalyticsEvents } from '@atlaskit/analytics-next';
3
3
  import { ANALYTICS_CHANNEL } from '../common/constants';
4
4
  import { useRovoAgentCSID } from '../common/csid';
5
- import { getDefaultTrackEventConfig } from '../common/utils';
5
+ import { getAttributesFromContexts, getDefaultTrackEventConfig } from '../common/utils';
6
6
  export let AgentCreateActions = /*#__PURE__*/function (AgentCreateActions) {
7
7
  /* Start create flow when user clicks on "Create agent" button - https://data-portal.internal.atlassian.com/analytics/registry/97089 */
8
8
  AgentCreateActions["START"] = "createFlowStart";
@@ -22,27 +22,32 @@ export let AgentCreateActions = /*#__PURE__*/function (AgentCreateActions) {
22
22
  AgentCreateActions["DISCARD"] = "createDiscard";
23
23
  return AgentCreateActions;
24
24
  }({});
25
+ const globalEventConfig = getDefaultTrackEventConfig();
25
26
  export const useRovoAgentCreateAnalytics = commonAttributes => {
26
27
  const [csid, {
27
28
  refresh: refreshCSID
28
29
  }] = useRovoAgentCSID();
30
+ const analyticsContext = useContext(AnalyticsReactContext);
29
31
  const {
30
32
  createAnalyticsEvent
31
33
  } = useAnalyticsEvents();
32
- const eventConfig = useMemo(() => getDefaultTrackEventConfig(), []);
34
+ const commonAttributesRef = useRef(commonAttributes);
33
35
  const fireAnalyticsEvent = useCallback(event => {
34
36
  const referrer = typeof window !== 'undefined' ? window.document.referrer : 'unknown';
37
+ const attributes = {
38
+ ...getAttributesFromContexts(analyticsContext.getAtlaskitAnalyticsContext()),
39
+ ...commonAttributesRef.current,
40
+ ...event.attributes,
41
+ csid,
42
+ referrer
43
+ };
35
44
  createAnalyticsEvent({
36
- ...eventConfig,
45
+ ...globalEventConfig,
37
46
  ...event,
38
- attributes: {
39
- csid,
40
- referrer,
41
- ...commonAttributes,
42
- ...event.attributes
43
- }
47
+ attributes
44
48
  }).fire(ANALYTICS_CHANNEL);
45
- }, [createAnalyticsEvent, eventConfig, csid, commonAttributes]);
49
+ }, [createAnalyticsEvent, csid, analyticsContext] // keep number of dependencies minimal to prevent re-rendering
50
+ );
46
51
 
47
52
  /**
48
53
  * This will fire analytics event for intermediate steps in the create agent flow funnel
@@ -82,6 +87,7 @@ export const useRovoAgentCreateAnalytics = commonAttributes => {
82
87
  return [csid, {
83
88
  trackCreateSession,
84
89
  trackCreateSessionStart,
85
- trackCreateSessionError
90
+ trackCreateSessionError,
91
+ refreshCSID
86
92
  }];
87
93
  };
@@ -1,7 +1,7 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
3
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
- import { useCallback, useContext, useMemo } from 'react';
4
+ import { useCallback, useContext, useRef } from 'react';
5
5
  import { AnalyticsReactContext, useAnalyticsEvents } from '@atlaskit/analytics-next';
6
6
  import { ANALYTICS_CHANNEL } from '../common/constants';
7
7
  import { getAttributesFromContexts, getDefaultTrackEventConfig } from '../common/utils';
@@ -39,19 +39,19 @@ export var AgentCommonActions = /*#__PURE__*/function (AgentCommonActions) {
39
39
  AgentCommonActions["UNVERIFY"] = "unverify";
40
40
  return AgentCommonActions;
41
41
  }({});
42
+ var globalEventConfig = getDefaultTrackEventConfig();
42
43
  export var useRovoAgentActionAnalytics = function useRovoAgentActionAnalytics(commonAttributes) {
43
44
  var analyticsContext = useContext(AnalyticsReactContext);
44
45
  var _useAnalyticsEvents = useAnalyticsEvents(),
45
46
  createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
46
- var eventConfig = useMemo(function () {
47
- return getDefaultTrackEventConfig();
48
- }, []);
47
+ var commonAttributesRef = useRef(commonAttributes);
49
48
  var fireAnalyticsEvent = useCallback(function (event) {
50
- var attributes = _objectSpread(_objectSpread(_objectSpread({}, getAttributesFromContexts(analyticsContext.getAtlaskitAnalyticsContext())), commonAttributes), event.attributes);
51
- createAnalyticsEvent(_objectSpread(_objectSpread(_objectSpread({}, eventConfig), event), {}, {
49
+ var attributes = _objectSpread(_objectSpread(_objectSpread({}, getAttributesFromContexts(analyticsContext.getAtlaskitAnalyticsContext())), commonAttributesRef.current), event.attributes);
50
+ createAnalyticsEvent(_objectSpread(_objectSpread(_objectSpread({}, globalEventConfig), event), {}, {
52
51
  attributes: attributes
53
52
  })).fire(ANALYTICS_CHANNEL);
54
- }, [createAnalyticsEvent, eventConfig, commonAttributes, analyticsContext]);
53
+ }, [createAnalyticsEvent, analyticsContext] // keep number of dependencies minimal to prevent re-rendering
54
+ );
55
55
  var trackAgentAction = useCallback(function (action, attributes) {
56
56
  fireAnalyticsEvent({
57
57
  actionSubject: 'rovoAgent',
@@ -28,6 +28,7 @@ export var useRovoAgentCSID = function useRovoAgentCSID() {
28
28
  refresh: function refresh() {
29
29
  var newCSID = generateCSID();
30
30
  setCSID(newCSID);
31
+ return newCSID;
31
32
  },
32
33
  clear: function clear() {
33
34
  // remove CSID query parameter
@@ -37,6 +38,7 @@ export var useRovoAgentCSID = function useRovoAgentCSID() {
37
38
 
38
39
  // reset state
39
40
  setCSID(null);
41
+ return null;
40
42
  }
41
43
  };
42
44
  }, []);
@@ -2,11 +2,11 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
3
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
4
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
- import { useCallback, useMemo } from 'react';
6
- import { useAnalyticsEvents } from '@atlaskit/analytics-next';
5
+ import { useCallback, useContext, useRef } from 'react';
6
+ import { AnalyticsReactContext, useAnalyticsEvents } from '@atlaskit/analytics-next';
7
7
  import { ANALYTICS_CHANNEL } from '../common/constants';
8
8
  import { useRovoAgentCSID } from '../common/csid';
9
- import { getDefaultTrackEventConfig } from '../common/utils';
9
+ import { getAttributesFromContexts, getDefaultTrackEventConfig } from '../common/utils';
10
10
  export var AgentCreateActions = /*#__PURE__*/function (AgentCreateActions) {
11
11
  /* Start create flow when user clicks on "Create agent" button - https://data-portal.internal.atlassian.com/analytics/registry/97089 */
12
12
  AgentCreateActions["START"] = "createFlowStart";
@@ -26,25 +26,27 @@ export var AgentCreateActions = /*#__PURE__*/function (AgentCreateActions) {
26
26
  AgentCreateActions["DISCARD"] = "createDiscard";
27
27
  return AgentCreateActions;
28
28
  }({});
29
+ var globalEventConfig = getDefaultTrackEventConfig();
29
30
  export var useRovoAgentCreateAnalytics = function useRovoAgentCreateAnalytics(commonAttributes) {
30
31
  var _useRovoAgentCSID = useRovoAgentCSID(),
31
32
  _useRovoAgentCSID2 = _slicedToArray(_useRovoAgentCSID, 2),
32
33
  csid = _useRovoAgentCSID2[0],
33
34
  refreshCSID = _useRovoAgentCSID2[1].refresh;
35
+ var analyticsContext = useContext(AnalyticsReactContext);
34
36
  var _useAnalyticsEvents = useAnalyticsEvents(),
35
37
  createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
36
- var eventConfig = useMemo(function () {
37
- return getDefaultTrackEventConfig();
38
- }, []);
38
+ var commonAttributesRef = useRef(commonAttributes);
39
39
  var fireAnalyticsEvent = useCallback(function (event) {
40
40
  var referrer = typeof window !== 'undefined' ? window.document.referrer : 'unknown';
41
- createAnalyticsEvent(_objectSpread(_objectSpread(_objectSpread({}, eventConfig), event), {}, {
42
- attributes: _objectSpread(_objectSpread({
43
- csid: csid,
44
- referrer: referrer
45
- }, commonAttributes), event.attributes)
41
+ var attributes = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, getAttributesFromContexts(analyticsContext.getAtlaskitAnalyticsContext())), commonAttributesRef.current), event.attributes), {}, {
42
+ csid: csid,
43
+ referrer: referrer
44
+ });
45
+ createAnalyticsEvent(_objectSpread(_objectSpread(_objectSpread({}, globalEventConfig), event), {}, {
46
+ attributes: attributes
46
47
  })).fire(ANALYTICS_CHANNEL);
47
- }, [createAnalyticsEvent, eventConfig, csid, commonAttributes]);
48
+ }, [createAnalyticsEvent, csid, analyticsContext] // keep number of dependencies minimal to prevent re-rendering
49
+ );
48
50
 
49
51
  /**
50
52
  * This will fire analytics event for intermediate steps in the create agent flow funnel
@@ -83,6 +85,7 @@ export var useRovoAgentCreateAnalytics = function useRovoAgentCreateAnalytics(co
83
85
  return [csid, {
84
86
  trackCreateSession: trackCreateSession,
85
87
  trackCreateSessionStart: trackCreateSessionStart,
86
- trackCreateSessionError: trackCreateSessionError
88
+ trackCreateSessionError: trackCreateSessionError,
89
+ refreshCSID: refreshCSID
87
90
  }];
88
91
  };
@@ -3,6 +3,6 @@
3
3
  * @returns Rovo Agent CSID as a string.
4
4
  */
5
5
  export declare const useRovoAgentCSID: () => readonly [string | null, {
6
- refresh: () => void;
7
- clear: () => void;
6
+ refresh: () => `${string}-${string}-${string}-${string}-${string}`;
7
+ clear: () => null;
8
8
  }];
@@ -15,5 +15,6 @@ export declare const useRovoAgentCreateAnalytics: (commonAttributes: CommonAnaly
15
15
  readonly trackCreateSession: (action: Omit<AgentCreateActions, AgentCreateActions.START>, attributes?: CommonAnalyticsAttributes) => void;
16
16
  readonly trackCreateSessionStart: (attributes?: CommonAnalyticsAttributes) => void;
17
17
  readonly trackCreateSessionError: (error: Error, attributes?: CommonAnalyticsAttributes) => void;
18
+ readonly refreshCSID: () => `${string}-${string}-${string}-${string}-${string}`;
18
19
  }];
19
20
  export {};
@@ -5,7 +5,7 @@
5
5
  export declare const useRovoAgentCSID: () => readonly [
6
6
  string | null,
7
7
  {
8
- refresh: () => void;
9
- clear: () => void;
8
+ refresh: () => `${string}-${string}-${string}-${string}-${string}`;
9
+ clear: () => null;
10
10
  }
11
11
  ];
@@ -17,6 +17,7 @@ export declare const useRovoAgentCreateAnalytics: (commonAttributes: CommonAnaly
17
17
  readonly trackCreateSession: (action: Omit<AgentCreateActions, AgentCreateActions.START>, attributes?: CommonAnalyticsAttributes) => void;
18
18
  readonly trackCreateSessionStart: (attributes?: CommonAnalyticsAttributes) => void;
19
19
  readonly trackCreateSessionError: (error: Error, attributes?: CommonAnalyticsAttributes) => void;
20
+ readonly refreshCSID: () => `${string}-${string}-${string}-${string}-${string}`;
20
21
  }
21
22
  ];
22
23
  export {};
package/package.json CHANGED
@@ -83,7 +83,7 @@
83
83
  ]
84
84
  },
85
85
  "name": "@atlaskit/rovo-agent-analytics",
86
- "version": "0.13.0",
86
+ "version": "0.14.0",
87
87
  "description": "Rovo Agents analytics",
88
88
  "author": "Atlassian Pty Ltd",
89
89
  "license": "Apache-2.0",