@atlaskit/popup 1.23.2 → 1.24.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 CHANGED
@@ -1,5 +1,21 @@
1
1
  # @atlaskit/popup
2
2
 
3
+ ## 1.24.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#135608](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/135608)
8
+ [`7498a45496f8a`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/7498a45496f8a) -
9
+ Update to remove react-uid
10
+
11
+ ## 1.24.0
12
+
13
+ ### Minor Changes
14
+
15
+ - [#124840](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/124840)
16
+ [`2e4f70b9a71fa`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/2e4f70b9a71fa) -
17
+ Fix to set ref for trigger in React 18 Strict mode behind feature flag
18
+
3
19
  ## 1.23.2
4
20
 
5
21
  ### Patch Changes
@@ -8,9 +8,9 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.PopupTrigger = exports.PopupContent = exports.Popup = void 0;
9
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
10
  var _react = _interopRequireWildcard(require("react"));
11
- var _reactUid = require("react-uid");
12
11
  var _tinyInvariant = _interopRequireDefault(require("tiny-invariant"));
13
12
  var _noop = _interopRequireDefault(require("@atlaskit/ds-lib/noop"));
13
+ var _reactUid = require("@atlaskit/ds-lib/react-uid");
14
14
  var _layering = require("@atlaskit/layering");
15
15
  var _popper = require("@atlaskit/popper");
16
16
  var _portal = _interopRequireDefault(require("@atlaskit/portal"));
@@ -59,7 +59,7 @@ var Popup = exports.Popup = function Popup(_ref) {
59
59
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
60
60
  triggerRef = _useState2[0],
61
61
  setTriggerRef = _useState2[1];
62
- var generatedId = (0, _reactUid.useUID)();
62
+ var generatedId = (0, _reactUid.useId)();
63
63
  var id = providedId || generatedId;
64
64
  return /*#__PURE__*/_react.default.createElement(EnsureIsInsidePopupContext.Provider, {
65
65
  value: true
package/dist/cjs/popup.js CHANGED
@@ -8,7 +8,7 @@ exports.default = exports.Popup = void 0;
8
8
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
9
  var _react = require("react");
10
10
  var _react2 = require("@emotion/react");
11
- var _reactUid = require("react-uid");
11
+ var _reactUid = require("@atlaskit/ds-lib/react-uid");
12
12
  var _layering = require("@atlaskit/layering");
13
13
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
14
14
  var _popper = require("@atlaskit/popper");
@@ -17,6 +17,7 @@ var _primitives = require("@atlaskit/primitives");
17
17
  var _constants = require("@atlaskit/theme/constants");
18
18
  var _popperWrapper = _interopRequireDefault(require("./popper-wrapper"));
19
19
  var _useGetMemoizedMergedTriggerRef = require("./use-get-memoized-merged-trigger-ref");
20
+ var _useGetMemoizedMergedTriggerRefNew = require("./use-get-memoized-merged-trigger-ref-new");
20
21
  /* eslint-disable @repo/internal/react/require-jsdoc */
21
22
  /**
22
23
  * @jsxRuntime classic
@@ -70,7 +71,8 @@ var Popup = exports.Popup = /*#__PURE__*/(0, _react.memo)(function (_ref) {
70
71
  triggerRef = _useState2[0],
71
72
  setTriggerRef = _useState2[1];
72
73
  var getMergedTriggerRef = (0, _useGetMemoizedMergedTriggerRef.useGetMemoizedMergedTriggerRef)();
73
- var generatedId = (0, _reactUid.useUID)();
74
+ var getMergedTriggerRefNew = (0, _useGetMemoizedMergedTriggerRefNew.useGetMemoizedMergedTriggerRefNew)();
75
+ var generatedId = (0, _reactUid.useId)();
74
76
  var id = providedId || generatedId;
75
77
  var renderPopperWrapper = (0, _react2.jsx)(_layering.UNSAFE_LAYERING, {
76
78
  isDisabled: false
@@ -103,7 +105,7 @@ var Popup = exports.Popup = /*#__PURE__*/(0, _react.memo)(function (_ref) {
103
105
  var popupContent = (0, _react2.jsx)(_popper.Manager, null, (0, _react2.jsx)(_popper.Reference, null, function (_ref2) {
104
106
  var ref = _ref2.ref;
105
107
  return trigger({
106
- ref: getMergedTriggerRef(ref, setTriggerRef, isOpen),
108
+ ref: !(0, _platformFeatureFlags.fg)('platform-design-system-dsp-20476-dropdown-menu') ? getMergedTriggerRef(ref, setTriggerRef, isOpen) : getMergedTriggerRefNew(ref, setTriggerRef),
107
109
  'aria-controls': isOpen ? id : undefined,
108
110
  'aria-expanded': isOpen,
109
111
  'aria-haspopup': role === 'dialog' && (0, _platformFeatureFlags.fg)('platform_dst_popup-disable-focuslock') ? 'dialog' : true
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useGetMemoizedMergedTriggerRefNew = void 0;
8
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
+ var _react = require("react");
10
+ var _memoizeOne = _interopRequireDefault(require("memoize-one"));
11
+ /**
12
+ * Here setting ref is not dependent on isOpen flag which is failing in React 18 strict mode
13
+ * Implemented behind ff `platform-design-system-dsp-20476-dropdown-menu`
14
+ * @returns Function to set trigger ref
15
+ */
16
+ var useGetMemoizedMergedTriggerRefNew = exports.useGetMemoizedMergedTriggerRefNew = function useGetMemoizedMergedTriggerRefNew() {
17
+ var _useState = (0, _react.useState)(function () {
18
+ return (0, _memoizeOne.default)(function (ref, setTriggerRef) {
19
+ return function (node) {
20
+ if (node) {
21
+ if (typeof ref === 'function') {
22
+ ref(node);
23
+ } else if (ref) {
24
+ ref.current = node;
25
+ }
26
+ setTriggerRef(node);
27
+ }
28
+ };
29
+ });
30
+ }),
31
+ _useState2 = (0, _slicedToArray2.default)(_useState, 1),
32
+ getMemoizedMergedTriggerRefNew = _useState2[0];
33
+ return getMemoizedMergedTriggerRefNew;
34
+ };
@@ -1,7 +1,7 @@
1
1
  import React, { createContext, useContext, useState } from 'react';
2
- import { useUID } from 'react-uid';
3
2
  import invariant from 'tiny-invariant';
4
3
  import noop from '@atlaskit/ds-lib/noop';
4
+ import { useId } from '@atlaskit/ds-lib/react-uid';
5
5
  import { UNSAFE_LAYERING } from '@atlaskit/layering';
6
6
  import { Manager, Reference } from '@atlaskit/popper';
7
7
  import Portal from '@atlaskit/portal';
@@ -45,7 +45,7 @@ export const Popup = ({
45
45
  isOpen = false
46
46
  }) => {
47
47
  const [triggerRef, setTriggerRef] = useState(null);
48
- const generatedId = useUID();
48
+ const generatedId = useId();
49
49
  const id = providedId || generatedId;
50
50
  return /*#__PURE__*/React.createElement(EnsureIsInsidePopupContext.Provider, {
51
51
  value: true
@@ -7,7 +7,7 @@ import { memo, useState } from 'react';
7
7
 
8
8
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
9
9
  import { jsx } from '@emotion/react';
10
- import { useUID } from 'react-uid';
10
+ import { useId } from '@atlaskit/ds-lib/react-uid';
11
11
  import { UNSAFE_LAYERING } from '@atlaskit/layering';
12
12
  import { fg } from '@atlaskit/platform-feature-flags';
13
13
  import { Manager, Reference } from '@atlaskit/popper';
@@ -16,6 +16,7 @@ import { Box, xcss } from '@atlaskit/primitives';
16
16
  import { layers } from '@atlaskit/theme/constants';
17
17
  import PopperWrapper from './popper-wrapper';
18
18
  import { useGetMemoizedMergedTriggerRef } from './use-get-memoized-merged-trigger-ref';
19
+ import { useGetMemoizedMergedTriggerRefNew } from './use-get-memoized-merged-trigger-ref-new';
19
20
  const defaultLayer = layers.layer();
20
21
  const wrapperStyles = xcss({
21
22
  position: 'relative'
@@ -49,7 +50,8 @@ export const Popup = /*#__PURE__*/memo(({
49
50
  }) => {
50
51
  const [triggerRef, setTriggerRef] = useState(null);
51
52
  const getMergedTriggerRef = useGetMemoizedMergedTriggerRef();
52
- const generatedId = useUID();
53
+ const getMergedTriggerRefNew = useGetMemoizedMergedTriggerRefNew();
54
+ const generatedId = useId();
53
55
  const id = providedId || generatedId;
54
56
  const renderPopperWrapper = jsx(UNSAFE_LAYERING, {
55
57
  isDisabled: false
@@ -83,7 +85,7 @@ export const Popup = /*#__PURE__*/memo(({
83
85
  ref
84
86
  }) => {
85
87
  return trigger({
86
- ref: getMergedTriggerRef(ref, setTriggerRef, isOpen),
88
+ ref: !fg('platform-design-system-dsp-20476-dropdown-menu') ? getMergedTriggerRef(ref, setTriggerRef, isOpen) : getMergedTriggerRefNew(ref, setTriggerRef),
87
89
  'aria-controls': isOpen ? id : undefined,
88
90
  'aria-expanded': isOpen,
89
91
  'aria-haspopup': role === 'dialog' && fg('platform_dst_popup-disable-focuslock') ? 'dialog' : true
@@ -0,0 +1,23 @@
1
+ import { useState } from 'react';
2
+ import memoizeOne from 'memoize-one';
3
+
4
+ /**
5
+ * Here setting ref is not dependent on isOpen flag which is failing in React 18 strict mode
6
+ * Implemented behind ff `platform-design-system-dsp-20476-dropdown-menu`
7
+ * @returns Function to set trigger ref
8
+ */
9
+ export const useGetMemoizedMergedTriggerRefNew = () => {
10
+ const [getMemoizedMergedTriggerRefNew] = useState(() => memoizeOne((ref, setTriggerRef) => {
11
+ return node => {
12
+ if (node) {
13
+ if (typeof ref === 'function') {
14
+ ref(node);
15
+ } else if (ref) {
16
+ ref.current = node;
17
+ }
18
+ setTriggerRef(node);
19
+ }
20
+ };
21
+ }));
22
+ return getMemoizedMergedTriggerRefNew;
23
+ };
@@ -1,8 +1,8 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
2
  import React, { createContext, useContext, useState } from 'react';
3
- import { useUID } from 'react-uid';
4
3
  import invariant from 'tiny-invariant';
5
4
  import noop from '@atlaskit/ds-lib/noop';
5
+ import { useId } from '@atlaskit/ds-lib/react-uid';
6
6
  import { UNSAFE_LAYERING } from '@atlaskit/layering';
7
7
  import { Manager, Reference } from '@atlaskit/popper';
8
8
  import Portal from '@atlaskit/portal';
@@ -49,7 +49,7 @@ export var Popup = function Popup(_ref) {
49
49
  _useState2 = _slicedToArray(_useState, 2),
50
50
  triggerRef = _useState2[0],
51
51
  setTriggerRef = _useState2[1];
52
- var generatedId = useUID();
52
+ var generatedId = useId();
53
53
  var id = providedId || generatedId;
54
54
  return /*#__PURE__*/React.createElement(EnsureIsInsidePopupContext.Provider, {
55
55
  value: true
package/dist/esm/popup.js CHANGED
@@ -8,7 +8,7 @@ import { memo, useState } from 'react';
8
8
 
9
9
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
10
10
  import { jsx } from '@emotion/react';
11
- import { useUID } from 'react-uid';
11
+ import { useId } from '@atlaskit/ds-lib/react-uid';
12
12
  import { UNSAFE_LAYERING } from '@atlaskit/layering';
13
13
  import { fg } from '@atlaskit/platform-feature-flags';
14
14
  import { Manager, Reference } from '@atlaskit/popper';
@@ -17,6 +17,7 @@ import { Box, xcss } from '@atlaskit/primitives';
17
17
  import { layers } from '@atlaskit/theme/constants';
18
18
  import PopperWrapper from './popper-wrapper';
19
19
  import { useGetMemoizedMergedTriggerRef } from './use-get-memoized-merged-trigger-ref';
20
+ import { useGetMemoizedMergedTriggerRefNew } from './use-get-memoized-merged-trigger-ref-new';
20
21
  var defaultLayer = layers.layer();
21
22
  var wrapperStyles = xcss({
22
23
  position: 'relative'
@@ -62,7 +63,8 @@ export var Popup = /*#__PURE__*/memo(function (_ref) {
62
63
  triggerRef = _useState2[0],
63
64
  setTriggerRef = _useState2[1];
64
65
  var getMergedTriggerRef = useGetMemoizedMergedTriggerRef();
65
- var generatedId = useUID();
66
+ var getMergedTriggerRefNew = useGetMemoizedMergedTriggerRefNew();
67
+ var generatedId = useId();
66
68
  var id = providedId || generatedId;
67
69
  var renderPopperWrapper = jsx(UNSAFE_LAYERING, {
68
70
  isDisabled: false
@@ -95,7 +97,7 @@ export var Popup = /*#__PURE__*/memo(function (_ref) {
95
97
  var popupContent = jsx(Manager, null, jsx(Reference, null, function (_ref2) {
96
98
  var ref = _ref2.ref;
97
99
  return trigger({
98
- ref: getMergedTriggerRef(ref, setTriggerRef, isOpen),
100
+ ref: !fg('platform-design-system-dsp-20476-dropdown-menu') ? getMergedTriggerRef(ref, setTriggerRef, isOpen) : getMergedTriggerRefNew(ref, setTriggerRef),
99
101
  'aria-controls': isOpen ? id : undefined,
100
102
  'aria-expanded': isOpen,
101
103
  'aria-haspopup': role === 'dialog' && fg('platform_dst_popup-disable-focuslock') ? 'dialog' : true
@@ -0,0 +1,28 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ import { useState } from 'react';
3
+ import memoizeOne from 'memoize-one';
4
+
5
+ /**
6
+ * Here setting ref is not dependent on isOpen flag which is failing in React 18 strict mode
7
+ * Implemented behind ff `platform-design-system-dsp-20476-dropdown-menu`
8
+ * @returns Function to set trigger ref
9
+ */
10
+ export var useGetMemoizedMergedTriggerRefNew = function useGetMemoizedMergedTriggerRefNew() {
11
+ var _useState = useState(function () {
12
+ return memoizeOne(function (ref, setTriggerRef) {
13
+ return function (node) {
14
+ if (node) {
15
+ if (typeof ref === 'function') {
16
+ ref(node);
17
+ } else if (ref) {
18
+ ref.current = node;
19
+ }
20
+ setTriggerRef(node);
21
+ }
22
+ };
23
+ });
24
+ }),
25
+ _useState2 = _slicedToArray(_useState, 1),
26
+ getMemoizedMergedTriggerRefNew = _useState2[0];
27
+ return getMemoizedMergedTriggerRefNew;
28
+ };
@@ -0,0 +1,7 @@
1
+ import { type Dispatch, type SetStateAction } from 'react';
2
+ /**
3
+ * Here setting ref is not dependent on isOpen flag which is failing in React 18 strict mode
4
+ * Implemented behind ff `platform-design-system-dsp-20476-dropdown-menu`
5
+ * @returns Function to set trigger ref
6
+ */
7
+ 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>;
@@ -0,0 +1,7 @@
1
+ import { type Dispatch, type SetStateAction } from 'react';
2
+ /**
3
+ * Here setting ref is not dependent on isOpen flag which is failing in React 18 strict mode
4
+ * Implemented behind ff `platform-design-system-dsp-20476-dropdown-menu`
5
+ * @returns Function to set trigger ref
6
+ */
7
+ 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": "1.23.2",
3
+ "version": "1.24.1",
4
4
  "description": "A popup displays brief content in an overlay.",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -29,10 +29,6 @@
29
29
  },
30
30
  "atlassian": {
31
31
  "team": "Design System Team",
32
- "productPushConsumption": [
33
- "jira"
34
- ],
35
- "releaseModel": "continuous",
36
32
  "runReact18": true,
37
33
  "website": {
38
34
  "name": "Popup",
@@ -45,7 +41,7 @@
45
41
  "@atlaskit/platform-feature-flags": "^0.3.0",
46
42
  "@atlaskit/popper": "^6.2.0",
47
43
  "@atlaskit/portal": "^4.9.0",
48
- "@atlaskit/primitives": "^12.0.0",
44
+ "@atlaskit/primitives": "^12.1.0",
49
45
  "@atlaskit/theme": "^13.0.0",
50
46
  "@atlaskit/tokens": "^1.59.0",
51
47
  "@babel/runtime": "^7.0.0",
@@ -53,7 +49,6 @@
53
49
  "bind-event-listener": "^3.0.0",
54
50
  "focus-trap": "^2.4.5",
55
51
  "memoize-one": "^6.0.0",
56
- "react-uid": "^2.2.0",
57
52
  "tiny-invariant": "^1.2.0"
58
53
  },
59
54
  "peerDependencies": {
@@ -113,6 +108,9 @@
113
108
  },
114
109
  "platform_dst_popup-disable-focuslock": {
115
110
  "type": "boolean"
111
+ },
112
+ "platform-design-system-dsp-20476-dropdown-menu": {
113
+ "type": "boolean"
116
114
  }
117
115
  },
118
116
  "homepage": "https://atlassian.design/components/popup/"