@atlaskit/app-provider 1.6.0 → 1.7.0

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/app-provider
2
2
 
3
+ ## 1.7.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#105257](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/105257)
8
+ [`16af4057ef04e`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/16af4057ef04e) -
9
+ Fixes a race condition with setting the theme. This change is no longer behind a feature flag.
10
+
11
+ ## 1.6.1
12
+
13
+ ### Patch Changes
14
+
15
+ - [#103996](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/103996)
16
+ [`e97a60e120280`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/e97a60e120280) -
17
+ Update dependencies and remove unused internal exports.
18
+
3
19
  ## 1.6.0
4
20
 
5
21
  ### Minor Changes
@@ -5,7 +5,6 @@ var _typeof = require("@babel/runtime/helpers/typeof");
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.AppProvider = AppProvider;
9
8
  exports.default = void 0;
10
9
  var _react = _interopRequireWildcard(require("react"));
11
10
  var _routerLinkProvider = _interopRequireDefault(require("./router-link-provider"));
@@ -8,6 +8,7 @@ exports.default = exports.RouterLinkProviderContext = void 0;
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
  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); }
10
10
  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 && {}.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; }
11
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
11
12
  var RouterLinkProviderContext = exports.RouterLinkProviderContext = /*#__PURE__*/(0, _react.createContext)({});
12
13
  /**
13
14
  * __RouterLinkProvider__
@@ -5,7 +5,6 @@ var _typeof = require("@babel/runtime/helpers/typeof");
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.ThemeProvider = ThemeProvider;
9
8
  exports.UNSAFE_useColorModeForMigration = UNSAFE_useColorModeForMigration;
10
9
  exports.default = void 0;
11
10
  exports.useColorMode = useColorMode;
@@ -145,20 +144,8 @@ function ThemeProvider(_ref) {
145
144
  return _objectSpread(_objectSpread({}, theme), nextTheme);
146
145
  });
147
146
  }, []);
148
- (0, _react.useEffect)(function () {
149
- if ((0, _platformFeatureFlags.fg)('platform_dst_fix_set_theme_race')) {
150
- return;
151
- }
152
- (0, _tokens.setGlobalTheme)(_objectSpread(_objectSpread({}, theme), {}, {
153
- colorMode: reconciledColorMode
154
- }));
155
- }, [theme, reconciledColorMode]);
156
147
  var lastSetGlobalThemePromiseRef = (0, _react.useRef)(null);
157
148
  (0, _react.useEffect)(function () {
158
- if (!(0, _platformFeatureFlags.fg)('platform_dst_fix_set_theme_race')) {
159
- return;
160
- }
161
-
162
149
  /**
163
150
  * We need to wait for any previous `setGlobalTheme` calls to finish before calling it again.
164
151
  * This is to prevent race conditions as `setGlobalTheme` is async and mutates the DOM (e.g. sets the
@@ -9,7 +9,7 @@ const InsideAppProviderContext = /*#__PURE__*/createContext(false);
9
9
  *
10
10
  * Place it at the root of your application.
11
11
  */
12
- export function AppProvider({
12
+ function AppProvider({
13
13
  children,
14
14
  defaultColorMode = 'light',
15
15
  defaultTheme,
@@ -1,4 +1,5 @@
1
1
  import React, { createContext } from 'react';
2
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
2
3
  export const RouterLinkProviderContext = /*#__PURE__*/createContext({});
3
4
  /**
4
5
  * __RouterLinkProvider__
@@ -94,7 +94,7 @@ function getReconciledColorMode(colorMode) {
94
94
  *
95
95
  * @internal
96
96
  */
97
- export function ThemeProvider({
97
+ function ThemeProvider({
98
98
  children,
99
99
  defaultColorMode,
100
100
  defaultTheme
@@ -115,21 +115,8 @@ export function ThemeProvider({
115
115
  ...nextTheme
116
116
  }));
117
117
  }, []);
118
- useEffect(() => {
119
- if (fg('platform_dst_fix_set_theme_race')) {
120
- return;
121
- }
122
- setGlobalTheme({
123
- ...theme,
124
- colorMode: reconciledColorMode
125
- });
126
- }, [theme, reconciledColorMode]);
127
118
  const lastSetGlobalThemePromiseRef = useRef(null);
128
119
  useEffect(() => {
129
- if (!fg('platform_dst_fix_set_theme_race')) {
130
- return;
131
- }
132
-
133
120
  /**
134
121
  * We need to wait for any previous `setGlobalTheme` calls to finish before calling it again.
135
122
  * This is to prevent race conditions as `setGlobalTheme` is async and mutates the DOM (e.g. sets the
@@ -9,7 +9,7 @@ var InsideAppProviderContext = /*#__PURE__*/createContext(false);
9
9
  *
10
10
  * Place it at the root of your application.
11
11
  */
12
- export function AppProvider(_ref) {
12
+ function AppProvider(_ref) {
13
13
  var children = _ref.children,
14
14
  _ref$defaultColorMode = _ref.defaultColorMode,
15
15
  defaultColorMode = _ref$defaultColorMode === void 0 ? 'light' : _ref$defaultColorMode,
@@ -1,4 +1,5 @@
1
1
  import React, { createContext } from 'react';
2
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
2
3
  export var RouterLinkProviderContext = /*#__PURE__*/createContext({});
3
4
  /**
4
5
  * __RouterLinkProvider__
@@ -102,7 +102,7 @@ function getReconciledColorMode(colorMode) {
102
102
  *
103
103
  * @internal
104
104
  */
105
- export function ThemeProvider(_ref) {
105
+ function ThemeProvider(_ref) {
106
106
  var children = _ref.children,
107
107
  defaultColorMode = _ref.defaultColorMode,
108
108
  defaultTheme = _ref.defaultTheme;
@@ -129,20 +129,8 @@ export function ThemeProvider(_ref) {
129
129
  return _objectSpread(_objectSpread({}, theme), nextTheme);
130
130
  });
131
131
  }, []);
132
- useEffect(function () {
133
- if (fg('platform_dst_fix_set_theme_race')) {
134
- return;
135
- }
136
- setGlobalTheme(_objectSpread(_objectSpread({}, theme), {}, {
137
- colorMode: reconciledColorMode
138
- }));
139
- }, [theme, reconciledColorMode]);
140
132
  var lastSetGlobalThemePromiseRef = useRef(null);
141
133
  useEffect(function () {
142
- if (!fg('platform_dst_fix_set_theme_race')) {
143
- return;
144
- }
145
-
146
134
  /**
147
135
  * We need to wait for any previous `setGlobalTheme` calls to finish before calling it again.
148
136
  * This is to prevent race conditions as `setGlobalTheme` is async and mutates the DOM (e.g. sets the
@@ -35,5 +35,5 @@ interface AppProviderProps {
35
35
  *
36
36
  * Place it at the root of your application.
37
37
  */
38
- export declare function AppProvider({ children, defaultColorMode, defaultTheme, routerLinkComponent, UNSAFE_isThemingDisabled, }: AppProviderProps): JSX.Element;
38
+ declare function AppProvider({ children, defaultColorMode, defaultTheme, routerLinkComponent, UNSAFE_isThemingDisabled, }: AppProviderProps): JSX.Element;
39
39
  export default AppProvider;
@@ -31,7 +31,7 @@ export type RouterLinkProviderContextProps<RouterLinkConfig extends Record<strin
31
31
  routerLinkComponent?: RouterLinkComponent<RouterLinkConfig>;
32
32
  };
33
33
  export declare const RouterLinkProviderContext: React.Context<RouterLinkProviderContextProps<never>>;
34
- export type RouterLinkProviderProps = {
34
+ type RouterLinkProviderProps = {
35
35
  /**
36
36
  * The rendering mechanism of router links within Design System components.
37
37
  */
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import { type ThemeState } from '@atlaskit/tokens';
3
3
  export type Theme = Omit<ThemeState, 'colorMode' | 'contrastMode'>;
4
4
  export type ColorMode = 'light' | 'dark' | 'auto';
5
- export type ReconciledColorMode = Exclude<ColorMode, 'auto'>;
5
+ type ReconciledColorMode = Exclude<ColorMode, 'auto'>;
6
6
  /**
7
7
  * __UNSAFE_useColorModeForMigration()__
8
8
  *
@@ -47,5 +47,5 @@ interface ThemeProviderProps {
47
47
  *
48
48
  * @internal
49
49
  */
50
- export declare function ThemeProvider({ children, defaultColorMode, defaultTheme }: ThemeProviderProps): JSX.Element;
50
+ declare function ThemeProvider({ children, defaultColorMode, defaultTheme }: ThemeProviderProps): JSX.Element;
51
51
  export default ThemeProvider;
@@ -35,5 +35,5 @@ interface AppProviderProps {
35
35
  *
36
36
  * Place it at the root of your application.
37
37
  */
38
- export declare function AppProvider({ children, defaultColorMode, defaultTheme, routerLinkComponent, UNSAFE_isThemingDisabled, }: AppProviderProps): JSX.Element;
38
+ declare function AppProvider({ children, defaultColorMode, defaultTheme, routerLinkComponent, UNSAFE_isThemingDisabled, }: AppProviderProps): JSX.Element;
39
39
  export default AppProvider;
@@ -31,7 +31,7 @@ export type RouterLinkProviderContextProps<RouterLinkConfig extends Record<strin
31
31
  routerLinkComponent?: RouterLinkComponent<RouterLinkConfig>;
32
32
  };
33
33
  export declare const RouterLinkProviderContext: React.Context<RouterLinkProviderContextProps<never>>;
34
- export type RouterLinkProviderProps = {
34
+ type RouterLinkProviderProps = {
35
35
  /**
36
36
  * The rendering mechanism of router links within Design System components.
37
37
  */
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import { type ThemeState } from '@atlaskit/tokens';
3
3
  export type Theme = Omit<ThemeState, 'colorMode' | 'contrastMode'>;
4
4
  export type ColorMode = 'light' | 'dark' | 'auto';
5
- export type ReconciledColorMode = Exclude<ColorMode, 'auto'>;
5
+ type ReconciledColorMode = Exclude<ColorMode, 'auto'>;
6
6
  /**
7
7
  * __UNSAFE_useColorModeForMigration()__
8
8
  *
@@ -47,5 +47,5 @@ interface ThemeProviderProps {
47
47
  *
48
48
  * @internal
49
49
  */
50
- export declare function ThemeProvider({ children, defaultColorMode, defaultTheme }: ThemeProviderProps): JSX.Element;
50
+ declare function ThemeProvider({ children, defaultColorMode, defaultTheme }: ThemeProviderProps): JSX.Element;
51
51
  export default ThemeProvider;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/app-provider",
3
- "version": "1.6.0",
3
+ "version": "1.7.0",
4
4
  "description": "A top level provider for the Design System.",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
@@ -40,7 +40,7 @@
40
40
  },
41
41
  "dependencies": {
42
42
  "@atlaskit/platform-feature-flags": "^0.3.0",
43
- "@atlaskit/tokens": "^3.0.0",
43
+ "@atlaskit/tokens": "^3.2.0",
44
44
  "@babel/runtime": "^7.0.0",
45
45
  "bind-event-listener": "^3.0.0"
46
46
  },
@@ -49,16 +49,16 @@
49
49
  },
50
50
  "devDependencies": {
51
51
  "@af/visual-regression": "*",
52
+ "@atlaskit/dropdown-menu": "^12.25.0",
52
53
  "@atlaskit/ds-lib": "^3.3.0",
54
+ "@atlaskit/primitives": "^13.3.7",
53
55
  "@atlaskit/ssr": "*",
54
56
  "@atlaskit/visual-regression": "*",
55
57
  "@testing-library/react": "^12.1.5",
56
- "@testing-library/react-hooks": "^8.0.1",
57
58
  "@testing-library/user-event": "^14.4.3",
58
59
  "react-dom": "^16.8.0",
59
60
  "react-resource-router": "^0.20.0",
60
- "typescript": "~5.4.2",
61
- "wait-for-expect": "^1.2.0"
61
+ "typescript": "~5.4.2"
62
62
  },
63
63
  "techstack": {
64
64
  "@atlassian/frontend": {
@@ -93,9 +93,6 @@
93
93
  },
94
94
  "homepage": "https://atlassian.design/components/app-provider",
95
95
  "platform-feature-flags": {
96
- "platform_dst_fix_set_theme_race": {
97
- "type": "boolean"
98
- },
99
96
  "platform-default-typography-modernized": {
100
97
  "type": "boolean"
101
98
  }