@atlaskit/popup 4.7.1 → 4.8.1
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 +18 -0
- package/dist/cjs/compositional/popup.js +3 -6
- package/dist/cjs/use-close-manager.js +1 -1
- package/dist/cjs/use-get-memoized-merged-trigger-ref-new.js +2 -2
- package/dist/es2019/compositional/popup.js +3 -6
- package/dist/es2019/use-close-manager.js +1 -1
- package/dist/es2019/use-get-memoized-merged-trigger-ref-new.js +2 -2
- package/dist/esm/compositional/popup.js +3 -6
- package/dist/esm/use-close-manager.js +1 -1
- package/dist/esm/use-get-memoized-merged-trigger-ref-new.js +2 -2
- package/dist/types/use-get-memoized-merged-trigger-ref-new.d.ts +2 -2
- package/dist/types-ts4.5/use-get-memoized-merged-trigger-ref-new.d.ts +2 -2
- package/package.json +3 -9
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# @atlaskit/popup
|
|
2
2
|
|
|
3
|
+
## 4.8.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`70f2d1e65958d`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/70f2d1e65958d) -
|
|
8
|
+
Clean up flag.
|
|
9
|
+
|
|
10
|
+
## 4.8.0
|
|
11
|
+
|
|
12
|
+
### Minor Changes
|
|
13
|
+
|
|
14
|
+
- [`51e544e9024d4`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/51e544e9024d4) -
|
|
15
|
+
Fixes a bug with compositional popups where focus was not being returned to the trigger when the
|
|
16
|
+
popup is closed. This was occurring in React 18 Strict Mode.
|
|
17
|
+
|
|
18
|
+
This change was previously behind the feature gate `platform-dst-popup-compositional-trigger-ref`,
|
|
19
|
+
which has now been removed.
|
|
20
|
+
|
|
3
21
|
## 4.7.1
|
|
4
22
|
|
|
5
23
|
### Patch Changes
|
|
@@ -13,12 +13,10 @@ var _noop = _interopRequireDefault(require("@atlaskit/ds-lib/noop"));
|
|
|
13
13
|
var _useId = require("@atlaskit/ds-lib/use-id");
|
|
14
14
|
var _layering = require("@atlaskit/layering");
|
|
15
15
|
var _openLayerObserver = require("@atlaskit/layering/experimental/open-layer-observer");
|
|
16
|
-
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
17
16
|
var _popper = require("@atlaskit/popper");
|
|
18
17
|
var _portal = _interopRequireDefault(require("@atlaskit/portal"));
|
|
19
18
|
var _popperWrapper = _interopRequireDefault(require("../popper-wrapper"));
|
|
20
19
|
var _useAppearance = require("../use-appearance");
|
|
21
|
-
var _useGetMemoizedMergedTriggerRef = require("../use-get-memoized-merged-trigger-ref");
|
|
22
20
|
var _useGetMemoizedMergedTriggerRefNew = require("../use-get-memoized-merged-trigger-ref-new");
|
|
23
21
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
24
22
|
var IsOpenContext = /*#__PURE__*/(0, _react.createContext)(false);
|
|
@@ -85,15 +83,14 @@ var Popup = exports.Popup = function Popup(_ref) {
|
|
|
85
83
|
var PopupTrigger = exports.PopupTrigger = function PopupTrigger(_ref2) {
|
|
86
84
|
var children = _ref2.children;
|
|
87
85
|
useEnsureIsInsidePopup();
|
|
88
|
-
var isOpen = (0, _react.useContext)(IsOpenContext);
|
|
89
86
|
var id = (0, _react.useContext)(IdContext);
|
|
90
87
|
var setTriggerRef = (0, _react.useContext)(SetTriggerRefContext);
|
|
91
|
-
var
|
|
92
|
-
var
|
|
88
|
+
var isOpen = (0, _react.useContext)(IsOpenContext);
|
|
89
|
+
var getMergedTriggerRef = (0, _useGetMemoizedMergedTriggerRefNew.useGetMemoizedMergedTriggerRefNew)();
|
|
93
90
|
return /*#__PURE__*/_react.default.createElement(_popper.Reference, null, function (_ref3) {
|
|
94
91
|
var ref = _ref3.ref;
|
|
95
92
|
return children({
|
|
96
|
-
ref:
|
|
93
|
+
ref: getMergedTriggerRef(ref, setTriggerRef),
|
|
97
94
|
'aria-controls': id,
|
|
98
95
|
'aria-expanded': isOpen,
|
|
99
96
|
'aria-haspopup': true
|
|
@@ -35,7 +35,7 @@ var useCloseManager = exports.useCloseManager = function useCloseManager(_ref) {
|
|
|
35
35
|
if (!isOpen || !popupRef) {
|
|
36
36
|
return _noop.default;
|
|
37
37
|
}
|
|
38
|
-
var inIframe = window && window.self !== window.top
|
|
38
|
+
var inIframe = window && window.self !== window.top;
|
|
39
39
|
var closePopup = function closePopup(event) {
|
|
40
40
|
if (onClose) {
|
|
41
41
|
var _currentLevel = null;
|
|
@@ -10,8 +10,8 @@ var _react = require("react");
|
|
|
10
10
|
var _memoizeOne = _interopRequireDefault(require("memoize-one"));
|
|
11
11
|
/**
|
|
12
12
|
* Here setting ref is not dependent on isOpen flag which is failing in React 18 strict mode
|
|
13
|
-
*
|
|
14
|
-
*
|
|
13
|
+
* Used behind ff `platform-design-system-popup-ref` for regular popup.
|
|
14
|
+
* Compositional popup always uses this variant.
|
|
15
15
|
* @returns Function to set trigger ref
|
|
16
16
|
*/
|
|
17
17
|
var useGetMemoizedMergedTriggerRefNew = exports.useGetMemoizedMergedTriggerRefNew = function useGetMemoizedMergedTriggerRefNew() {
|
|
@@ -4,12 +4,10 @@ import noop from '@atlaskit/ds-lib/noop';
|
|
|
4
4
|
import { useId } from '@atlaskit/ds-lib/use-id';
|
|
5
5
|
import { Layering } from '@atlaskit/layering';
|
|
6
6
|
import { useNotifyOpenLayerObserver } from '@atlaskit/layering/experimental/open-layer-observer';
|
|
7
|
-
import { fg } from '@atlaskit/platform-feature-flags';
|
|
8
7
|
import { Manager, Reference } from '@atlaskit/popper';
|
|
9
8
|
import Portal from '@atlaskit/portal';
|
|
10
9
|
import PopperWrapper from '../popper-wrapper';
|
|
11
10
|
import { usePopupAppearance } from '../use-appearance';
|
|
12
|
-
import { useGetMemoizedMergedTriggerRef } from '../use-get-memoized-merged-trigger-ref';
|
|
13
11
|
import { useGetMemoizedMergedTriggerRefNew } from '../use-get-memoized-merged-trigger-ref-new';
|
|
14
12
|
const IsOpenContext = /*#__PURE__*/createContext(false);
|
|
15
13
|
const IdContext = /*#__PURE__*/createContext(undefined);
|
|
@@ -73,15 +71,14 @@ export const PopupTrigger = ({
|
|
|
73
71
|
children
|
|
74
72
|
}) => {
|
|
75
73
|
useEnsureIsInsidePopup();
|
|
76
|
-
const isOpen = useContext(IsOpenContext);
|
|
77
74
|
const id = useContext(IdContext);
|
|
78
75
|
const setTriggerRef = useContext(SetTriggerRefContext);
|
|
79
|
-
const
|
|
80
|
-
const
|
|
76
|
+
const isOpen = useContext(IsOpenContext);
|
|
77
|
+
const getMergedTriggerRef = useGetMemoizedMergedTriggerRefNew();
|
|
81
78
|
return /*#__PURE__*/React.createElement(Reference, null, ({
|
|
82
79
|
ref
|
|
83
80
|
}) => children({
|
|
84
|
-
ref:
|
|
81
|
+
ref: getMergedTriggerRef(ref, setTriggerRef),
|
|
85
82
|
'aria-controls': id,
|
|
86
83
|
'aria-expanded': isOpen,
|
|
87
84
|
'aria-haspopup': true
|
|
@@ -30,7 +30,7 @@ export const useCloseManager = ({
|
|
|
30
30
|
if (!isOpen || !popupRef) {
|
|
31
31
|
return noop;
|
|
32
32
|
}
|
|
33
|
-
const inIframe = window && window.self !== window.top
|
|
33
|
+
const inIframe = window && window.self !== window.top;
|
|
34
34
|
const closePopup = event => {
|
|
35
35
|
if (onClose) {
|
|
36
36
|
let currentLevel = null;
|
|
@@ -3,8 +3,8 @@ import memoizeOne from 'memoize-one';
|
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Here setting ref is not dependent on isOpen flag which is failing in React 18 strict mode
|
|
6
|
-
*
|
|
7
|
-
*
|
|
6
|
+
* Used behind ff `platform-design-system-popup-ref` for regular popup.
|
|
7
|
+
* Compositional popup always uses this variant.
|
|
8
8
|
* @returns Function to set trigger ref
|
|
9
9
|
*/
|
|
10
10
|
export const useGetMemoizedMergedTriggerRefNew = () => {
|
|
@@ -5,12 +5,10 @@ import noop from '@atlaskit/ds-lib/noop';
|
|
|
5
5
|
import { useId } from '@atlaskit/ds-lib/use-id';
|
|
6
6
|
import { Layering } from '@atlaskit/layering';
|
|
7
7
|
import { useNotifyOpenLayerObserver } from '@atlaskit/layering/experimental/open-layer-observer';
|
|
8
|
-
import { fg } from '@atlaskit/platform-feature-flags';
|
|
9
8
|
import { Manager, Reference } from '@atlaskit/popper';
|
|
10
9
|
import Portal from '@atlaskit/portal';
|
|
11
10
|
import PopperWrapper from '../popper-wrapper';
|
|
12
11
|
import { usePopupAppearance } from '../use-appearance';
|
|
13
|
-
import { useGetMemoizedMergedTriggerRef } from '../use-get-memoized-merged-trigger-ref';
|
|
14
12
|
import { useGetMemoizedMergedTriggerRefNew } from '../use-get-memoized-merged-trigger-ref-new';
|
|
15
13
|
var IsOpenContext = /*#__PURE__*/createContext(false);
|
|
16
14
|
var IdContext = /*#__PURE__*/createContext(undefined);
|
|
@@ -76,15 +74,14 @@ export var Popup = function Popup(_ref) {
|
|
|
76
74
|
export var PopupTrigger = function PopupTrigger(_ref2) {
|
|
77
75
|
var children = _ref2.children;
|
|
78
76
|
useEnsureIsInsidePopup();
|
|
79
|
-
var isOpen = useContext(IsOpenContext);
|
|
80
77
|
var id = useContext(IdContext);
|
|
81
78
|
var setTriggerRef = useContext(SetTriggerRefContext);
|
|
82
|
-
var
|
|
83
|
-
var
|
|
79
|
+
var isOpen = useContext(IsOpenContext);
|
|
80
|
+
var getMergedTriggerRef = useGetMemoizedMergedTriggerRefNew();
|
|
84
81
|
return /*#__PURE__*/React.createElement(Reference, null, function (_ref3) {
|
|
85
82
|
var ref = _ref3.ref;
|
|
86
83
|
return children({
|
|
87
|
-
ref:
|
|
84
|
+
ref: getMergedTriggerRef(ref, setTriggerRef),
|
|
88
85
|
'aria-controls': id,
|
|
89
86
|
'aria-expanded': isOpen,
|
|
90
87
|
'aria-haspopup': true
|
|
@@ -27,7 +27,7 @@ export var useCloseManager = function useCloseManager(_ref) {
|
|
|
27
27
|
if (!isOpen || !popupRef) {
|
|
28
28
|
return noop;
|
|
29
29
|
}
|
|
30
|
-
var inIframe = window && window.self !== window.top
|
|
30
|
+
var inIframe = window && window.self !== window.top;
|
|
31
31
|
var closePopup = function closePopup(event) {
|
|
32
32
|
if (onClose) {
|
|
33
33
|
var _currentLevel = null;
|
|
@@ -4,8 +4,8 @@ import memoizeOne from 'memoize-one';
|
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Here setting ref is not dependent on isOpen flag which is failing in React 18 strict mode
|
|
7
|
-
*
|
|
8
|
-
*
|
|
7
|
+
* Used behind ff `platform-design-system-popup-ref` for regular popup.
|
|
8
|
+
* Compositional popup always uses this variant.
|
|
9
9
|
* @returns Function to set trigger ref
|
|
10
10
|
*/
|
|
11
11
|
export var useGetMemoizedMergedTriggerRefNew = function useGetMemoizedMergedTriggerRefNew() {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { type Dispatch, type SetStateAction } from 'react';
|
|
2
2
|
/**
|
|
3
3
|
* Here setting ref is not dependent on isOpen flag which is failing in React 18 strict mode
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Used behind ff `platform-design-system-popup-ref` for regular popup.
|
|
5
|
+
* Compositional popup always uses this variant.
|
|
6
6
|
* @returns Function to set trigger ref
|
|
7
7
|
*/
|
|
8
8
|
export declare const useGetMemoizedMergedTriggerRefNew: () => import("memoize-one").MemoizedFn<(ref: React.RefCallback<HTMLElement> | React.MutableRefObject<HTMLElement> | null, setTriggerRef: Dispatch<SetStateAction<HTMLElement | null>>) => (node: HTMLElement | null) => void>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { type Dispatch, type SetStateAction } from 'react';
|
|
2
2
|
/**
|
|
3
3
|
* Here setting ref is not dependent on isOpen flag which is failing in React 18 strict mode
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Used behind ff `platform-design-system-popup-ref` for regular popup.
|
|
5
|
+
* Compositional popup always uses this variant.
|
|
6
6
|
* @returns Function to set trigger ref
|
|
7
7
|
*/
|
|
8
8
|
export declare const useGetMemoizedMergedTriggerRefNew: () => import("memoize-one").MemoizedFn<(ref: React.RefCallback<HTMLElement> | React.MutableRefObject<HTMLElement> | null, setTriggerRef: Dispatch<SetStateAction<HTMLElement | null>>) => (node: HTMLElement | null) => void>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/popup",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.8.1",
|
|
4
4
|
"description": "A popup displays brief content in an overlay.",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -58,9 +58,9 @@
|
|
|
58
58
|
"@atlaskit/button": "^23.8.0",
|
|
59
59
|
"@atlaskit/code": "^17.4.0",
|
|
60
60
|
"@atlaskit/docs": "^11.2.0",
|
|
61
|
-
"@atlaskit/form": "^15.
|
|
61
|
+
"@atlaskit/form": "^15.1.0",
|
|
62
62
|
"@atlaskit/heading": "^5.2.0",
|
|
63
|
-
"@atlaskit/icon": "^29.
|
|
63
|
+
"@atlaskit/icon": "^29.3.0",
|
|
64
64
|
"@atlaskit/link": "^3.2.0",
|
|
65
65
|
"@atlaskit/modal-dialog": "^14.9.0",
|
|
66
66
|
"@atlaskit/section-message": "^8.11.0",
|
|
@@ -111,15 +111,9 @@
|
|
|
111
111
|
"platform-design-system-apply-popup-wrapper-focus": {
|
|
112
112
|
"type": "boolean"
|
|
113
113
|
},
|
|
114
|
-
"fix-dropdown-close-outside-iframe": {
|
|
115
|
-
"type": "boolean"
|
|
116
|
-
},
|
|
117
114
|
"popup-onclose-fix": {
|
|
118
115
|
"type": "boolean"
|
|
119
116
|
},
|
|
120
|
-
"platform-dst-popup-compositional-trigger-ref": {
|
|
121
|
-
"type": "boolean"
|
|
122
|
-
},
|
|
123
117
|
"platform-dst-shape-theme-default": {
|
|
124
118
|
"type": "boolean"
|
|
125
119
|
}
|