@atlaskit/smart-card 19.0.3 → 19.0.4

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,11 @@
1
1
  # @atlaskit/smart-card
2
2
 
3
+ ## 19.0.4
4
+
5
+ ### Patch Changes
6
+
7
+ - [`3eea7c153d6`](https://bitbucket.org/atlassian/atlassian-frontend/commits/3eea7c153d6) - Handle onResolve prop from smart-card in flexible-card and use the prop inside hover-card to dynamically update popup positioning
8
+
3
9
  ## 19.0.3
4
10
 
5
11
  ### Patch Changes
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/smart-card",
3
- "version": "19.0.3",
3
+ "version": "19.0.4",
4
4
  "sideEffects": false
5
5
  }
@@ -136,7 +136,8 @@ function CardWithUrlContent(_ref) {
136
136
  renderers: renderers,
137
137
  ui: ui,
138
138
  url: url,
139
- testId: testId
139
+ testId: testId,
140
+ onResolve: onResolve
140
141
  }, children);
141
142
  } // We have to keep this last to prevent hook order from being violated
142
143
 
@@ -2,6 +2,8 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
@@ -9,7 +11,7 @@ exports.default = void 0;
9
11
 
10
12
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
13
 
12
- var _react = _interopRequireDefault(require("react"));
14
+ var _react = _interopRequireWildcard(require("react"));
13
15
 
14
16
  var _container = _interopRequireDefault(require("./components/container"));
15
17
 
@@ -17,6 +19,10 @@ var _flexibleUiContext = require("../../state/flexible-ui-context");
17
19
 
18
20
  var _utils = require("./utils");
19
21
 
22
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
+
24
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
+
20
26
  /**
21
27
  * This represents a Flexible Card: a link represented by a card with metadata.
22
28
  * This is the container in which all Flexible UI Blocks and Elements exist.
@@ -31,12 +37,20 @@ var FlexibleCard = function FlexibleCard(_ref) {
31
37
  ui = _ref.ui,
32
38
  url = _ref.url,
33
39
  onClick = _ref.onClick,
34
- testId = _ref.testId;
40
+ testId = _ref.testId,
41
+ onResolve = _ref.onResolve;
35
42
  var cardType = cardState.status,
36
43
  details = cardState.details;
37
44
  var status = cardType;
38
45
  var context = (0, _utils.getContextByStatus)(url, status, details, renderers);
39
46
  var retry = (0, _utils.getRetryOptions)(url, status, details, onAuthorize);
47
+ (0, _react.useEffect)(function () {
48
+ if (status === 'resolved' && onResolve) {
49
+ onResolve({
50
+ url: url
51
+ });
52
+ }
53
+ }, [onResolve, status, url]);
40
54
  return /*#__PURE__*/_react.default.createElement(_flexibleUiContext.FlexibleUiContext.Provider, {
41
55
  value: context
42
56
  }, /*#__PURE__*/_react.default.createElement(_container.default, (0, _extends2.default)({
@@ -138,7 +138,8 @@ var HoverCardComponent = function HoverCardComponent(_ref) {
138
138
  };
139
139
  }, [url, definitionId, extensionKey, analytics]);
140
140
 
141
- var CardComponent = function CardComponent() {
141
+ var CardComponent = function CardComponent(_ref2) {
142
+ var update = _ref2.update;
142
143
  //TODO: EDM-3224 deleted simulated and use real JsonLd
143
144
  var metadataElements = (0, _extractMetadata.extractMetadata)((0, _utils.getSimulatedMetadata)(extensionKey));
144
145
  return (0, _core.jsx)("div", {
@@ -151,7 +152,8 @@ var HoverCardComponent = function HoverCardComponent(_ref) {
151
152
  ui: {
152
153
  hideElevation: true,
153
154
  size: _constants.SmartLinkSize.Large
154
- }
155
+ },
156
+ onResolve: update
155
157
  }, (0, _core.jsx)(_blocks.TitleBlock, {
156
158
  actions: [openAction]
157
159
  }), (0, _core.jsx)(_blocks.MetadataBlock, {
@@ -170,7 +172,12 @@ var HoverCardComponent = function HoverCardComponent(_ref) {
170
172
  isOpen: isOpen,
171
173
  onClose: onClose,
172
174
  placement: "bottom-start",
173
- content: CardComponent,
175
+ content: function content(_ref3) {
176
+ var update = _ref3.update;
177
+ return (0, _core.jsx)(CardComponent, {
178
+ update: update
179
+ });
180
+ },
174
181
  trigger: function trigger(triggerProps) {
175
182
  return (0, _core.jsx)("span", (0, _extends2.default)({}, triggerProps, {
176
183
  onMouseEnter: initShowCard,
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/smart-card",
3
- "version": "19.0.3",
3
+ "version": "19.0.4",
4
4
  "sideEffects": false
5
5
  }
@@ -104,7 +104,8 @@ export function CardWithUrlContent({
104
104
  renderers: renderers,
105
105
  ui: ui,
106
106
  url: url,
107
- testId: testId
107
+ testId: testId,
108
+ onResolve: onResolve
108
109
  }, children);
109
110
  } // We have to keep this last to prevent hook order from being violated
110
111
 
@@ -1,5 +1,5 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
- import React from 'react';
2
+ import React, { useEffect } from 'react';
3
3
  import Container from './components/container';
4
4
  import { FlexibleUiContext } from '../../state/flexible-ui-context';
5
5
  import { getContextByStatus, getRetryOptions } from './utils';
@@ -18,7 +18,8 @@ const FlexibleCard = ({
18
18
  ui,
19
19
  url,
20
20
  onClick,
21
- testId
21
+ testId,
22
+ onResolve
22
23
  }) => {
23
24
  const {
24
25
  status: cardType,
@@ -27,6 +28,13 @@ const FlexibleCard = ({
27
28
  const status = cardType;
28
29
  const context = getContextByStatus(url, status, details, renderers);
29
30
  const retry = getRetryOptions(url, status, details, onAuthorize);
31
+ useEffect(() => {
32
+ if (status === 'resolved' && onResolve) {
33
+ onResolve({
34
+ url
35
+ });
36
+ }
37
+ }, [onResolve, status, url]);
30
38
  return /*#__PURE__*/React.createElement(FlexibleUiContext.Provider, {
31
39
  value: context
32
40
  }, /*#__PURE__*/React.createElement(Container, _extends({
@@ -91,7 +91,9 @@ export const HoverCardComponent = ({
91
91
  };
92
92
  }, [url, definitionId, extensionKey, analytics]);
93
93
 
94
- const CardComponent = () => {
94
+ const CardComponent = ({
95
+ update
96
+ }) => {
95
97
  //TODO: EDM-3224 deleted simulated and use real JsonLd
96
98
  const metadataElements = extractMetadata(getSimulatedMetadata(extensionKey));
97
99
  return jsx("div", {
@@ -104,7 +106,8 @@ export const HoverCardComponent = ({
104
106
  ui: {
105
107
  hideElevation: true,
106
108
  size: SmartLinkSize.Large
107
- }
109
+ },
110
+ onResolve: update
108
111
  }, jsx(TitleBlock, {
109
112
  actions: [openAction]
110
113
  }), jsx(MetadataBlock, {
@@ -121,7 +124,13 @@ export const HoverCardComponent = ({
121
124
  isOpen: isOpen,
122
125
  onClose: onClose,
123
126
  placement: "bottom-start",
124
- content: CardComponent,
127
+ content: ({
128
+ update
129
+ }) => {
130
+ return jsx(CardComponent, {
131
+ update: update
132
+ });
133
+ },
125
134
  trigger: triggerProps => jsx("span", _extends({}, triggerProps, {
126
135
  onMouseEnter: initShowCard,
127
136
  onMouseLeave: initHideCard
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/smart-card",
3
- "version": "19.0.3",
3
+ "version": "19.0.4",
4
4
  "sideEffects": false
5
5
  }
@@ -110,7 +110,8 @@ export function CardWithUrlContent(_ref) {
110
110
  renderers: renderers,
111
111
  ui: ui,
112
112
  url: url,
113
- testId: testId
113
+ testId: testId,
114
+ onResolve: onResolve
114
115
  }, children);
115
116
  } // We have to keep this last to prevent hook order from being violated
116
117
 
@@ -1,5 +1,5 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
- import React from 'react';
2
+ import React, { useEffect } from 'react';
3
3
  import Container from './components/container';
4
4
  import { FlexibleUiContext } from '../../state/flexible-ui-context';
5
5
  import { getContextByStatus, getRetryOptions } from './utils';
@@ -18,12 +18,20 @@ var FlexibleCard = function FlexibleCard(_ref) {
18
18
  ui = _ref.ui,
19
19
  url = _ref.url,
20
20
  onClick = _ref.onClick,
21
- testId = _ref.testId;
21
+ testId = _ref.testId,
22
+ onResolve = _ref.onResolve;
22
23
  var cardType = cardState.status,
23
24
  details = cardState.details;
24
25
  var status = cardType;
25
26
  var context = getContextByStatus(url, status, details, renderers);
26
27
  var retry = getRetryOptions(url, status, details, onAuthorize);
28
+ useEffect(function () {
29
+ if (status === 'resolved' && onResolve) {
30
+ onResolve({
31
+ url: url
32
+ });
33
+ }
34
+ }, [onResolve, status, url]);
27
35
  return /*#__PURE__*/React.createElement(FlexibleUiContext.Provider, {
28
36
  value: context
29
37
  }, /*#__PURE__*/React.createElement(Container, _extends({
@@ -106,7 +106,8 @@ export var HoverCardComponent = function HoverCardComponent(_ref) {
106
106
  };
107
107
  }, [url, definitionId, extensionKey, analytics]);
108
108
 
109
- var CardComponent = function CardComponent() {
109
+ var CardComponent = function CardComponent(_ref2) {
110
+ var update = _ref2.update;
110
111
  //TODO: EDM-3224 deleted simulated and use real JsonLd
111
112
  var metadataElements = extractMetadata(getSimulatedMetadata(extensionKey));
112
113
  return jsx("div", {
@@ -119,7 +120,8 @@ export var HoverCardComponent = function HoverCardComponent(_ref) {
119
120
  ui: {
120
121
  hideElevation: true,
121
122
  size: SmartLinkSize.Large
122
- }
123
+ },
124
+ onResolve: update
123
125
  }, jsx(TitleBlock, {
124
126
  actions: [openAction]
125
127
  }), jsx(MetadataBlock, {
@@ -138,7 +140,12 @@ export var HoverCardComponent = function HoverCardComponent(_ref) {
138
140
  isOpen: isOpen,
139
141
  onClose: onClose,
140
142
  placement: "bottom-start",
141
- content: CardComponent,
143
+ content: function content(_ref3) {
144
+ var update = _ref3.update;
145
+ return jsx(CardComponent, {
146
+ update: update
147
+ });
148
+ },
142
149
  trigger: function trigger(triggerProps) {
143
150
  return jsx("span", _extends({}, triggerProps, {
144
151
  onMouseEnter: initShowCard,
@@ -4,6 +4,7 @@ import { CardState } from '@atlaskit/linking-common';
4
4
  import { CardProviderRenderers } from '@atlaskit/link-provider';
5
5
  import { SmartLinkSize, SmartLinkTheme } from '../../constants';
6
6
  import { CardAppearance } from '../../view/Card';
7
+ import { OnResolveCallback } from '../Card/types';
7
8
  export declare type FlexibleCardProps = {
8
9
  /**
9
10
  * Determines the appearance of the Smart Link.
@@ -51,6 +52,10 @@ export declare type FlexibleCardProps = {
51
52
  * Determines the URL of the Smart Link.
52
53
  */
53
54
  url: string;
55
+ /**
56
+ * function to be called after a flexible card has rendered its resolved state
57
+ */
58
+ onResolve?: OnResolveCallback;
54
59
  };
55
60
  export declare type FlexibleUiOptions = {
56
61
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/smart-card",
3
- "version": "19.0.3",
3
+ "version": "19.0.4",
4
4
  "description": "Smart card component",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"