@atlaskit/smart-card 18.0.8 → 18.0.11
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 +35 -0
- package/dist/cjs/hooks.js +9 -1
- package/dist/cjs/state/hooks-external/useSmartLinkReload.js +32 -0
- package/dist/cjs/version.json +1 -1
- package/dist/cjs/view/CardWithUrl/component.js +5 -1
- package/dist/cjs/view/FlexibleCard/components/blocks/action-group/index.js +2 -2
- package/dist/cjs/view/FlexibleCard/components/blocks/title-block/utils.js +1 -1
- package/dist/es2019/hooks.js +2 -1
- package/dist/es2019/state/hooks-external/useSmartLinkReload.js +19 -0
- package/dist/es2019/version.json +1 -1
- package/dist/es2019/view/CardWithUrl/component.js +5 -1
- package/dist/es2019/view/FlexibleCard/components/blocks/action-group/index.js +2 -2
- package/dist/es2019/view/FlexibleCard/components/blocks/title-block/utils.js +2 -2
- package/dist/esm/hooks.js +2 -1
- package/dist/esm/state/hooks-external/useSmartLinkReload.js +20 -0
- package/dist/esm/version.json +1 -1
- package/dist/esm/view/CardWithUrl/component.js +5 -1
- package/dist/esm/view/FlexibleCard/components/blocks/action-group/index.js +2 -2
- package/dist/esm/view/FlexibleCard/components/blocks/title-block/utils.js +1 -1
- package/dist/types/hooks.d.ts +1 -0
- package/dist/types/state/hooks-external/useSmartLinkReload.d.ts +19 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,40 @@
|
|
|
1
1
|
# @atlaskit/smart-card
|
|
2
2
|
|
|
3
|
+
## 18.0.11
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`ec98e2d8ebc`](https://bitbucket.org/atlassian/atlassian-frontend/commits/ec98e2d8ebc) - feat: Expose `useSmartLinkReload` hook.
|
|
8
|
+
|
|
9
|
+
### Example Usage
|
|
10
|
+
|
|
11
|
+
As a consumer if you want to be able to reload the data backing a Smart Link, you may do:
|
|
12
|
+
|
|
13
|
+
```tsx
|
|
14
|
+
export const MyComponent = () => {
|
|
15
|
+
const reloader = useSmartLinkReload(url, analytics);
|
|
16
|
+
|
|
17
|
+
return (
|
|
18
|
+
<MyInterfaceItem>
|
|
19
|
+
<Card />
|
|
20
|
+
<Button text="Retry" onClick={reloader} />
|
|
21
|
+
</MyInterfaceItem>
|
|
22
|
+
);
|
|
23
|
+
};
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## 18.0.10
|
|
27
|
+
|
|
28
|
+
### Patch Changes
|
|
29
|
+
|
|
30
|
+
- [`b687926f768`](https://bitbucket.org/atlassian/atlassian-frontend/commits/b687926f768) - Fix bug where individual action item was not hidden by default with showActionOnHover flag
|
|
31
|
+
|
|
32
|
+
## 18.0.9
|
|
33
|
+
|
|
34
|
+
### Patch Changes
|
|
35
|
+
|
|
36
|
+
- [`6adaa6b5c18`](https://bitbucket.org/atlassian/atlassian-frontend/commits/6adaa6b5c18) - Updated default renderer onClick to not fire on a Flexible UI link to prevent links from being openned twice
|
|
37
|
+
|
|
3
38
|
## 18.0.8
|
|
4
39
|
|
|
5
40
|
### Patch Changes
|
package/dist/cjs/hooks.js
CHANGED
|
@@ -9,5 +9,13 @@ Object.defineProperty(exports, "useSmartLinkActions", {
|
|
|
9
9
|
return _useSmartLinkActions.useSmartLinkActions;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
|
+
Object.defineProperty(exports, "useSmartLinkReload", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function get() {
|
|
15
|
+
return _useSmartLinkReload.useSmartLinkReload;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
var _useSmartLinkActions = require("./state/hooks-external/useSmartLinkActions");
|
|
12
20
|
|
|
13
|
-
var
|
|
21
|
+
var _useSmartLinkReload = require("./state/hooks-external/useSmartLinkReload");
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.useSmartLinkReload = useSmartLinkReload;
|
|
9
|
+
|
|
10
|
+
var _react = require("react");
|
|
11
|
+
|
|
12
|
+
var _uuid = _interopRequireDefault(require("uuid"));
|
|
13
|
+
|
|
14
|
+
var _actions = require("../actions");
|
|
15
|
+
|
|
16
|
+
var _analytics = require("../analytics");
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Exposes a programmatic way to reload the data being used to render a Smart Link.
|
|
20
|
+
* @param
|
|
21
|
+
* @returns
|
|
22
|
+
*/
|
|
23
|
+
function useSmartLinkReload(_ref) {
|
|
24
|
+
var url = _ref.url,
|
|
25
|
+
analyticsHandler = _ref.analyticsHandler;
|
|
26
|
+
var id = (0, _react.useMemo)(function () {
|
|
27
|
+
return (0, _uuid.default)();
|
|
28
|
+
}, []);
|
|
29
|
+
var linkAnalytics = (0, _analytics.useSmartLinkAnalytics)(analyticsHandler);
|
|
30
|
+
var linkActions = (0, _actions.useSmartCardActions)(id, url, linkAnalytics);
|
|
31
|
+
return linkActions.reload;
|
|
32
|
+
}
|
package/dist/cjs/version.json
CHANGED
|
@@ -80,7 +80,11 @@ function CardWithUrlContent(_ref) {
|
|
|
80
80
|
analytics.ui.cardClickedEvent(isFlexibleUi ? 'flexible' : appearance, definitionId, extensionKey, isModifierKeyPressed);
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
-
|
|
83
|
+
if (onClick) {
|
|
84
|
+
onClick(event);
|
|
85
|
+
} else if (!isFlexibleUi) {
|
|
86
|
+
handleClick(event);
|
|
87
|
+
}
|
|
84
88
|
}, [state.status, analytics.ui, appearance, definitionId, extensionKey, onClick, handleClick, isFlexibleUi]);
|
|
85
89
|
var handleAuthorize = (0, _react.useCallback)(function () {
|
|
86
90
|
return actions.authorize(appearance);
|
|
@@ -48,7 +48,8 @@ var ActionGroup = function ActionGroup(_ref) {
|
|
|
48
48
|
var firstActions = isMoreThenTwoItems ? items.slice(0, visibleButtonsNum - 1) : items;
|
|
49
49
|
var restActions = isMoreThenTwoItems ? items.slice(visibleButtonsNum - 1) : [];
|
|
50
50
|
return (0, _core.jsx)("div", {
|
|
51
|
-
css: styles
|
|
51
|
+
css: styles,
|
|
52
|
+
className: "actions-button-group"
|
|
52
53
|
}, (0, _core.jsx)(_buttonGroup.default, null, (0, _utils.renderActionItems)(firstActions, size, appearance), restActions.length > 0 ? (0, _core.jsx)(_dropdownMenu.default, {
|
|
53
54
|
onOpenChange: function onOpenChange(_ref2) {
|
|
54
55
|
var isOpen = _ref2.isOpen;
|
|
@@ -59,7 +60,6 @@ var ActionGroup = function ActionGroup(_ref) {
|
|
|
59
60
|
props = (0, _objectWithoutProperties2.default)(_ref3, _excluded);
|
|
60
61
|
return (0, _core.jsx)(_standardButton.default, (0, _extends2.default)({}, props, {
|
|
61
62
|
spacing: _action.sizeToSpacing[size],
|
|
62
|
-
className: "action-group-more-button",
|
|
63
63
|
testId: "action-group-more-button",
|
|
64
64
|
iconBefore: (0, _core.jsx)(_more.default, {
|
|
65
65
|
label: "more"
|
|
@@ -41,7 +41,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
41
41
|
|
|
42
42
|
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; }
|
|
43
43
|
|
|
44
|
-
var actionOnHoverOnlyStyle = (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n .
|
|
44
|
+
var actionOnHoverOnlyStyle = (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n .actions-button-group {\n visibility: hidden;\n }\n\n &:hover {\n .actions-button-group {\n visibility: visible;\n }\n }\n"])));
|
|
45
45
|
exports.actionOnHoverOnlyStyle = actionOnHoverOnlyStyle;
|
|
46
46
|
|
|
47
47
|
var BaseTitleBlockComponent = function BaseTitleBlockComponent(_ref) {
|
package/dist/es2019/hooks.js
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export { useSmartLinkActions } from './state/hooks-external/useSmartLinkActions';
|
|
1
|
+
export { useSmartLinkActions } from './state/hooks-external/useSmartLinkActions';
|
|
2
|
+
export { useSmartLinkReload } from './state/hooks-external/useSmartLinkReload';
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { useMemo } from 'react';
|
|
2
|
+
import uuid from 'uuid';
|
|
3
|
+
import { useSmartCardActions as useLinkActions } from '../actions';
|
|
4
|
+
import { useSmartLinkAnalytics as useLinkAnalytics } from '../analytics';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Exposes a programmatic way to reload the data being used to render a Smart Link.
|
|
8
|
+
* @param
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
11
|
+
export function useSmartLinkReload({
|
|
12
|
+
url,
|
|
13
|
+
analyticsHandler
|
|
14
|
+
}) {
|
|
15
|
+
const id = useMemo(() => uuid(), []);
|
|
16
|
+
const linkAnalytics = useLinkAnalytics(analyticsHandler);
|
|
17
|
+
const linkActions = useLinkActions(id, url, linkAnalytics);
|
|
18
|
+
return linkActions.reload;
|
|
19
|
+
}
|
package/dist/es2019/version.json
CHANGED
|
@@ -52,7 +52,11 @@ export function CardWithUrlContent({
|
|
|
52
52
|
analytics.ui.cardClickedEvent(isFlexibleUi ? 'flexible' : appearance, definitionId, extensionKey, isModifierKeyPressed);
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
-
|
|
55
|
+
if (onClick) {
|
|
56
|
+
onClick(event);
|
|
57
|
+
} else if (!isFlexibleUi) {
|
|
58
|
+
handleClick(event);
|
|
59
|
+
}
|
|
56
60
|
}, [state.status, analytics.ui, appearance, definitionId, extensionKey, onClick, handleClick, isFlexibleUi]);
|
|
57
61
|
const handleAuthorize = useCallback(() => actions.authorize(appearance), [actions, appearance]);
|
|
58
62
|
const handleRetry = useCallback(() => {
|
|
@@ -25,7 +25,8 @@ const ActionGroup = ({
|
|
|
25
25
|
const firstActions = isMoreThenTwoItems ? items.slice(0, visibleButtonsNum - 1) : items;
|
|
26
26
|
const restActions = isMoreThenTwoItems ? items.slice(visibleButtonsNum - 1) : [];
|
|
27
27
|
return jsx("div", {
|
|
28
|
-
css: styles
|
|
28
|
+
css: styles,
|
|
29
|
+
className: "actions-button-group"
|
|
29
30
|
}, jsx(ButtonGroup, null, renderActionItems(firstActions, size, appearance), restActions.length > 0 ? jsx(DropdownMenu, {
|
|
30
31
|
onOpenChange: ({
|
|
31
32
|
isOpen
|
|
@@ -35,7 +36,6 @@ const ActionGroup = ({
|
|
|
35
36
|
...props
|
|
36
37
|
}) => jsx(Button, _extends({}, props, {
|
|
37
38
|
spacing: sizeToSpacing[size],
|
|
38
|
-
className: "action-group-more-button",
|
|
39
39
|
testId: "action-group-more-button",
|
|
40
40
|
iconBefore: jsx(MoreIcon, {
|
|
41
41
|
label: "more"
|
|
@@ -11,12 +11,12 @@ import { SmartLinkAlignment, SmartLinkWidth, SmartLinkDirection } from '../../..
|
|
|
11
11
|
import ElementGroup from '../element-group';
|
|
12
12
|
import { renderElementItems } from '../utils';
|
|
13
13
|
export const actionOnHoverOnlyStyle = css`
|
|
14
|
-
.
|
|
14
|
+
.actions-button-group {
|
|
15
15
|
visibility: hidden;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
&:hover {
|
|
19
|
-
.
|
|
19
|
+
.actions-button-group {
|
|
20
20
|
visibility: visible;
|
|
21
21
|
}
|
|
22
22
|
}
|
package/dist/esm/hooks.js
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export { useSmartLinkActions } from './state/hooks-external/useSmartLinkActions';
|
|
1
|
+
export { useSmartLinkActions } from './state/hooks-external/useSmartLinkActions';
|
|
2
|
+
export { useSmartLinkReload } from './state/hooks-external/useSmartLinkReload';
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { useMemo } from 'react';
|
|
2
|
+
import uuid from 'uuid';
|
|
3
|
+
import { useSmartCardActions as useLinkActions } from '../actions';
|
|
4
|
+
import { useSmartLinkAnalytics as useLinkAnalytics } from '../analytics';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Exposes a programmatic way to reload the data being used to render a Smart Link.
|
|
8
|
+
* @param
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
11
|
+
export function useSmartLinkReload(_ref) {
|
|
12
|
+
var url = _ref.url,
|
|
13
|
+
analyticsHandler = _ref.analyticsHandler;
|
|
14
|
+
var id = useMemo(function () {
|
|
15
|
+
return uuid();
|
|
16
|
+
}, []);
|
|
17
|
+
var linkAnalytics = useLinkAnalytics(analyticsHandler);
|
|
18
|
+
var linkActions = useLinkActions(id, url, linkAnalytics);
|
|
19
|
+
return linkActions.reload;
|
|
20
|
+
}
|
package/dist/esm/version.json
CHANGED
|
@@ -54,7 +54,11 @@ export function CardWithUrlContent(_ref) {
|
|
|
54
54
|
analytics.ui.cardClickedEvent(isFlexibleUi ? 'flexible' : appearance, definitionId, extensionKey, isModifierKeyPressed);
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
if (onClick) {
|
|
58
|
+
onClick(event);
|
|
59
|
+
} else if (!isFlexibleUi) {
|
|
60
|
+
handleClick(event);
|
|
61
|
+
}
|
|
58
62
|
}, [state.status, analytics.ui, appearance, definitionId, extensionKey, onClick, handleClick, isFlexibleUi]);
|
|
59
63
|
var handleAuthorize = useCallback(function () {
|
|
60
64
|
return actions.authorize(appearance);
|
|
@@ -29,7 +29,8 @@ var ActionGroup = function ActionGroup(_ref) {
|
|
|
29
29
|
var firstActions = isMoreThenTwoItems ? items.slice(0, visibleButtonsNum - 1) : items;
|
|
30
30
|
var restActions = isMoreThenTwoItems ? items.slice(visibleButtonsNum - 1) : [];
|
|
31
31
|
return jsx("div", {
|
|
32
|
-
css: styles
|
|
32
|
+
css: styles,
|
|
33
|
+
className: "actions-button-group"
|
|
33
34
|
}, jsx(ButtonGroup, null, renderActionItems(firstActions, size, appearance), restActions.length > 0 ? jsx(DropdownMenu, {
|
|
34
35
|
onOpenChange: function onOpenChange(_ref2) {
|
|
35
36
|
var isOpen = _ref2.isOpen;
|
|
@@ -41,7 +42,6 @@ var ActionGroup = function ActionGroup(_ref) {
|
|
|
41
42
|
|
|
42
43
|
return jsx(Button, _extends({}, props, {
|
|
43
44
|
spacing: sizeToSpacing[size],
|
|
44
|
-
className: "action-group-more-button",
|
|
45
45
|
testId: "action-group-more-button",
|
|
46
46
|
iconBefore: jsx(MoreIcon, {
|
|
47
47
|
label: "more"
|
|
@@ -16,7 +16,7 @@ import ActionGroup from '../action-group';
|
|
|
16
16
|
import { SmartLinkAlignment, SmartLinkWidth, SmartLinkDirection } from '../../../../../constants';
|
|
17
17
|
import ElementGroup from '../element-group';
|
|
18
18
|
import { renderElementItems } from '../utils';
|
|
19
|
-
export var actionOnHoverOnlyStyle = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .
|
|
19
|
+
export var actionOnHoverOnlyStyle = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .actions-button-group {\n visibility: hidden;\n }\n\n &:hover {\n .actions-button-group {\n visibility: visible;\n }\n }\n"])));
|
|
20
20
|
export var BaseTitleBlockComponent = function BaseTitleBlockComponent(_ref) {
|
|
21
21
|
var children = _ref.children,
|
|
22
22
|
blockTestIdPostfix = _ref.blockTestIdPostfix,
|
package/dist/types/hooks.d.ts
CHANGED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { AnalyticsHandler } from '../../utils/types';
|
|
2
|
+
export interface UseSmartLinkReloadOpts {
|
|
3
|
+
/**
|
|
4
|
+
* Smart Link URL for which the reload will be invoked.
|
|
5
|
+
* @example https://start.atlassian.com
|
|
6
|
+
*/
|
|
7
|
+
url: string;
|
|
8
|
+
/**
|
|
9
|
+
* Callback for sending analytics events.
|
|
10
|
+
* @description Accepts an analytics payload and fires it to a system.
|
|
11
|
+
*/
|
|
12
|
+
analyticsHandler: AnalyticsHandler;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Exposes a programmatic way to reload the data being used to render a Smart Link.
|
|
16
|
+
* @param
|
|
17
|
+
* @returns
|
|
18
|
+
*/
|
|
19
|
+
export declare function useSmartLinkReload({ url, analyticsHandler, }: UseSmartLinkReloadOpts): () => void;
|