@atlaskit/link-datasource 2.12.0 → 2.12.2

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,22 @@
1
1
  # @atlaskit/link-datasource
2
2
 
3
+ ## 2.12.2
4
+
5
+ ### Patch Changes
6
+
7
+ - [#137619](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/137619)
8
+ [`a91489985e535`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/a91489985e535) -
9
+ [ux] Tab and Shift+Tab now dismisses the list of opened popup select options and allows users to
10
+ navigate to next or previous elements accordingly.
11
+
12
+ ## 2.12.1
13
+
14
+ ### Patch Changes
15
+
16
+ - [#137443](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/137443)
17
+ [`1be2afe0863d9`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/1be2afe0863d9) -
18
+ Fire analytic event `ui.error.shown.inlineEdit` when error flag is shown
19
+
3
20
  ## 2.12.0
4
21
 
5
22
  ### Minor Changes
@@ -12,11 +12,20 @@ var _reactIntlNext = require("react-intl-next");
12
12
  var _uuid = _interopRequireDefault(require("uuid"));
13
13
  var _flag = require("@atlaskit/flag");
14
14
  var _crossCircle = _interopRequireDefault(require("@atlaskit/icon/glyph/cross-circle"));
15
+ var _analytics = require("../analytics");
15
16
  var _messages = require("../ui/issue-like-table/messages");
16
17
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
17
18
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
18
19
  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; }
19
20
  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) { (0, _defineProperty2.default)(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; }
21
+ var getErrorReason = function getErrorReason(status) {
22
+ switch (status) {
23
+ case 403:
24
+ return 'access_denied';
25
+ default:
26
+ return 'request_failed';
27
+ }
28
+ };
20
29
  var getGenericErrorMessage = function getGenericErrorMessage(status) {
21
30
  switch (status) {
22
31
  case 403:
@@ -34,6 +43,8 @@ var getGenericErrorMessage = function getGenericErrorMessage(status) {
34
43
  var useDatasourceTableFlag = exports.useDatasourceTableFlag = function useDatasourceTableFlag(options) {
35
44
  var _useFlags = (0, _flag.useFlags)(),
36
45
  showFlag = _useFlags.showFlag;
46
+ var _useDatasourceAnalyti = (0, _analytics.useDatasourceAnalyticsEvents)(),
47
+ fireEvent = _useDatasourceAnalyti.fireEvent;
37
48
  var showErrorFlag = (0, _react.useCallback)(function (args) {
38
49
  showFlag(_objectSpread(_objectSpread({
39
50
  // We need IconTile in order to scale the new icon to 24px
@@ -45,7 +56,10 @@ var useDatasourceTableFlag = exports.useDatasourceTableFlag = function useDataso
45
56
  id: (0, _uuid.default)(),
46
57
  isAutoDismiss: true
47
58
  }, getGenericErrorMessage(args === null || args === void 0 ? void 0 : args.status)), args));
48
- }, [showFlag]);
59
+ fireEvent('ui.error.shown.inlineEdit', {
60
+ reason: getErrorReason(args === null || args === void 0 ? void 0 : args.status)
61
+ });
62
+ }, [fireEvent, showFlag]);
49
63
  return {
50
64
  showErrorFlag: showErrorFlag
51
65
  };
@@ -181,6 +181,7 @@ var FilterPopupSelect = exports.FilterPopupSelect = function FilterPopupSelect(_
181
181
  searchThreshold: -1,
182
182
  inputValue: searchTerm,
183
183
  closeMenuOnSelect: false,
184
+ shouldCloseMenuOnTab: false,
184
185
  hideSelectedOptions: false,
185
186
  isLoading: showLoading,
186
187
  placeholder: formatMessage(_messages.asyncPopupSelectMessages.selectPlaceholder),
@@ -3,7 +3,16 @@ import { FormattedMessage } from 'react-intl-next';
3
3
  import uuid from 'uuid';
4
4
  import { useFlags } from '@atlaskit/flag';
5
5
  import CrossCircleIcon from '@atlaskit/icon/glyph/cross-circle';
6
+ import { useDatasourceAnalyticsEvents } from '../analytics';
6
7
  import { issueLikeTableMessages } from '../ui/issue-like-table/messages';
8
+ const getErrorReason = status => {
9
+ switch (status) {
10
+ case 403:
11
+ return 'access_denied';
12
+ default:
13
+ return 'request_failed';
14
+ }
15
+ };
7
16
  const getGenericErrorMessage = status => {
8
17
  switch (status) {
9
18
  case 403:
@@ -22,6 +31,9 @@ export const useDatasourceTableFlag = options => {
22
31
  const {
23
32
  showFlag
24
33
  } = useFlags();
34
+ const {
35
+ fireEvent
36
+ } = useDatasourceAnalyticsEvents();
25
37
  const showErrorFlag = useCallback(args => {
26
38
  showFlag({
27
39
  // We need IconTile in order to scale the new icon to 24px
@@ -35,7 +47,10 @@ export const useDatasourceTableFlag = options => {
35
47
  ...getGenericErrorMessage(args === null || args === void 0 ? void 0 : args.status),
36
48
  ...args
37
49
  });
38
- }, [showFlag]);
50
+ fireEvent('ui.error.shown.inlineEdit', {
51
+ reason: getErrorReason(args === null || args === void 0 ? void 0 : args.status)
52
+ });
53
+ }, [fireEvent, showFlag]);
39
54
  return {
40
55
  showErrorFlag
41
56
  };
@@ -134,6 +134,7 @@ export const FilterPopupSelect = ({
134
134
  searchThreshold: -1,
135
135
  inputValue: searchTerm,
136
136
  closeMenuOnSelect: false,
137
+ shouldCloseMenuOnTab: false,
137
138
  hideSelectedOptions: false,
138
139
  isLoading: showLoading,
139
140
  placeholder: formatMessage(asyncPopupSelectMessages.selectPlaceholder),
@@ -6,7 +6,16 @@ import { FormattedMessage } from 'react-intl-next';
6
6
  import uuid from 'uuid';
7
7
  import { useFlags } from '@atlaskit/flag';
8
8
  import CrossCircleIcon from '@atlaskit/icon/glyph/cross-circle';
9
+ import { useDatasourceAnalyticsEvents } from '../analytics';
9
10
  import { issueLikeTableMessages } from '../ui/issue-like-table/messages';
11
+ var getErrorReason = function getErrorReason(status) {
12
+ switch (status) {
13
+ case 403:
14
+ return 'access_denied';
15
+ default:
16
+ return 'request_failed';
17
+ }
18
+ };
10
19
  var getGenericErrorMessage = function getGenericErrorMessage(status) {
11
20
  switch (status) {
12
21
  case 403:
@@ -24,6 +33,8 @@ var getGenericErrorMessage = function getGenericErrorMessage(status) {
24
33
  export var useDatasourceTableFlag = function useDatasourceTableFlag(options) {
25
34
  var _useFlags = useFlags(),
26
35
  showFlag = _useFlags.showFlag;
36
+ var _useDatasourceAnalyti = useDatasourceAnalyticsEvents(),
37
+ fireEvent = _useDatasourceAnalyti.fireEvent;
27
38
  var showErrorFlag = useCallback(function (args) {
28
39
  showFlag(_objectSpread(_objectSpread({
29
40
  // We need IconTile in order to scale the new icon to 24px
@@ -35,7 +46,10 @@ export var useDatasourceTableFlag = function useDatasourceTableFlag(options) {
35
46
  id: uuid(),
36
47
  isAutoDismiss: true
37
48
  }, getGenericErrorMessage(args === null || args === void 0 ? void 0 : args.status)), args));
38
- }, [showFlag]);
49
+ fireEvent('ui.error.shown.inlineEdit', {
50
+ reason: getErrorReason(args === null || args === void 0 ? void 0 : args.status)
51
+ });
52
+ }, [fireEvent, showFlag]);
39
53
  return {
40
54
  showErrorFlag: showErrorFlag
41
55
  };
@@ -171,6 +171,7 @@ export var FilterPopupSelect = function FilterPopupSelect(_ref) {
171
171
  searchThreshold: -1,
172
172
  inputValue: searchTerm,
173
173
  closeMenuOnSelect: false,
174
+ shouldCloseMenuOnTab: false,
174
175
  hideSelectedOptions: false,
175
176
  isLoading: showLoading,
176
177
  placeholder: formatMessage(asyncPopupSelectMessages.selectPlaceholder),
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Generates Typescript types for analytics events from analytics.spec.yaml
5
5
  *
6
- * @codegen <<SignedSource::bd4a9ac1dd6f3a586ddf6c80d30b68fd>>
6
+ * @codegen <<SignedSource::87bb81d0c3b90473d208f9c02285004e>>
7
7
  * @codegenCommand yarn workspace @atlassian/analytics-tooling run analytics:codegen link-datasource
8
8
  */
9
9
  export type ComponentMetaDataType = {
@@ -157,6 +157,9 @@ export type InlineEditClickedDatasourceAttributesType = {
157
157
  integrationKey: string;
158
158
  fieldKey: string;
159
159
  };
160
+ export type ErrorShownInlineEditAttributesType = {
161
+ reason: 'access_denied' | 'request_failed';
162
+ };
160
163
  export type AnalyticsEventAttributes = {
161
164
  /**
162
165
  * Fires when user sees modal dialog. */
@@ -278,5 +281,8 @@ export type AnalyticsEventAttributes = {
278
281
  /**
279
282
  * Fired when inline edit is clicked to show edit mode */
280
283
  'ui.inlineEdit.clicked.datasource': InlineEditClickedDatasourceAttributesType;
284
+ /**
285
+ * Fired when the inline edit failed and the error flag is shown. */
286
+ 'ui.error.shown.inlineEdit': ErrorShownInlineEditAttributesType;
281
287
  };
282
288
  export type EventKey = keyof AnalyticsEventAttributes;
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Generates Typescript types for analytics events from analytics.spec.yaml
5
5
  *
6
- * @codegen <<SignedSource::bd4a9ac1dd6f3a586ddf6c80d30b68fd>>
6
+ * @codegen <<SignedSource::87bb81d0c3b90473d208f9c02285004e>>
7
7
  * @codegenCommand yarn workspace @atlassian/analytics-tooling run analytics:codegen link-datasource
8
8
  */
9
9
  export type ComponentMetaDataType = {
@@ -157,6 +157,9 @@ export type InlineEditClickedDatasourceAttributesType = {
157
157
  integrationKey: string;
158
158
  fieldKey: string;
159
159
  };
160
+ export type ErrorShownInlineEditAttributesType = {
161
+ reason: 'access_denied' | 'request_failed';
162
+ };
160
163
  export type AnalyticsEventAttributes = {
161
164
  /**
162
165
  * Fires when user sees modal dialog. */
@@ -278,5 +281,8 @@ export type AnalyticsEventAttributes = {
278
281
  /**
279
282
  * Fired when inline edit is clicked to show edit mode */
280
283
  'ui.inlineEdit.clicked.datasource': InlineEditClickedDatasourceAttributesType;
284
+ /**
285
+ * Fired when the inline edit failed and the error flag is shown. */
286
+ 'ui.error.shown.inlineEdit': ErrorShownInlineEditAttributesType;
281
287
  };
282
288
  export type EventKey = keyof AnalyticsEventAttributes;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/link-datasource",
3
- "version": "2.12.0",
3
+ "version": "2.12.2",
4
4
  "description": "UI Components to support linking platform dataset feature",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",