@atlaskit/navigation-system 5.1.0 → 5.2.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 +13 -0
- package/dist/cjs/ui/page-layout/side-nav/side-nav.js +0 -19
- package/dist/cjs/ui/page-layout/side-nav/toggle-button.js +1 -1
- package/dist/cjs/ui/page-layout/side-nav/visibility-provider.js +1 -2
- package/dist/es2019/ui/page-layout/side-nav/side-nav.js +0 -19
- package/dist/es2019/ui/page-layout/side-nav/toggle-button.js +1 -1
- package/dist/es2019/ui/page-layout/side-nav/visibility-provider.js +1 -2
- package/dist/esm/ui/page-layout/side-nav/side-nav.js +0 -19
- package/dist/esm/ui/page-layout/side-nav/toggle-button.js +1 -1
- package/dist/esm/ui/page-layout/side-nav/visibility-provider.js +1 -2
- package/package.json +1 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @atlassian/navigation-system
|
|
2
2
|
|
|
3
|
+
## 5.2.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`fef4ccb6af01f`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/fef4ccb6af01f) -
|
|
8
|
+
Cleans up the `platform_dst_nav4_side_nav_default_collapsed_api` feature gate. Default side nav
|
|
9
|
+
collapsed state can now be passed into the `Root` component via the `defaultSideNavCollapsed`
|
|
10
|
+
prop. This is the preferred API, and the legacy API will be removed at some point in the future.
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- Updated dependencies
|
|
15
|
+
|
|
3
16
|
## 5.1.0
|
|
4
17
|
|
|
5
18
|
### Minor Changes
|
|
@@ -304,29 +304,10 @@ function SideNavInternal(_ref) {
|
|
|
304
304
|
var toggleVisibilityByClickOutsideOnMobile = (0, _useToggleSideNav.useToggleSideNav)({
|
|
305
305
|
trigger: 'click-outside-on-mobile'
|
|
306
306
|
});
|
|
307
|
-
(0, _react.useEffect)(function () {
|
|
308
|
-
if ((0, _platformFeatureFlags.fg)('platform_dst_nav4_side_nav_default_collapsed_api')) {
|
|
309
|
-
// This is the old version of the hook, so we skip it when the flag is enabled
|
|
310
|
-
return;
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
// Sync the visibility in context (provided in `<Root>`) with the local `defaultCollapsed` prop provided to `SideNav`
|
|
314
|
-
// after SSR hydration. This should only run once, after the initial render on the client.
|
|
315
|
-
setSideNavState({
|
|
316
|
-
desktop: initialDefaultCollapsed ? 'collapsed' : 'expanded',
|
|
317
|
-
mobile: 'collapsed',
|
|
318
|
-
flyout: 'closed',
|
|
319
|
-
lastTrigger: null
|
|
320
|
-
});
|
|
321
|
-
}, [initialDefaultCollapsed, setSideNavState]);
|
|
322
307
|
|
|
323
308
|
// Moving to `useLayoutEffect` so that there's no visual shift in non-SSR environments when using legacy API
|
|
324
309
|
// For SSR the new API is still necessary
|
|
325
310
|
(0, _react.useLayoutEffect)(function () {
|
|
326
|
-
if (!(0, _platformFeatureFlags.fg)('platform_dst_nav4_side_nav_default_collapsed_api')) {
|
|
327
|
-
// This is the new version of the hook, so we skip it when the flag is disabled
|
|
328
|
-
return;
|
|
329
|
-
}
|
|
330
311
|
if (sideNavState !== null) {
|
|
331
312
|
// Only need to do an initial sync if it hasn't been initialized from Root
|
|
332
313
|
return;
|
|
@@ -57,7 +57,7 @@ var SideNavToggleButton = exports.SideNavToggleButton = function SideNavToggleBu
|
|
|
57
57
|
|
|
58
58
|
// When default state is provided to `Root` the state in context will already be
|
|
59
59
|
// initialized in SSR
|
|
60
|
-
var _useState = (0, _react.useState)(sideNavState === null
|
|
60
|
+
var _useState = (0, _react.useState)(sideNavState === null ? !defaultCollapsed : isSideNavExpandedOnDesktop),
|
|
61
61
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
62
62
|
isSideNavExpanded = _useState2[0],
|
|
63
63
|
setIsSideNavExpanded = _useState2[1];
|
|
@@ -8,7 +8,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
exports.SideNavVisibilityProvider = void 0;
|
|
9
9
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
-
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
12
11
|
var _visibilityContext = require("./visibility-context");
|
|
13
12
|
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); }
|
|
14
13
|
/**
|
|
@@ -17,7 +16,7 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
|
|
|
17
16
|
var SideNavVisibilityProvider = exports.SideNavVisibilityProvider = function SideNavVisibilityProvider(_ref) {
|
|
18
17
|
var children = _ref.children,
|
|
19
18
|
defaultCollapsed = _ref.defaultCollapsed;
|
|
20
|
-
var initialState = typeof defaultCollapsed === 'boolean'
|
|
19
|
+
var initialState = typeof defaultCollapsed === 'boolean' ? {
|
|
21
20
|
desktop: defaultCollapsed ? 'collapsed' : 'expanded',
|
|
22
21
|
mobile: 'collapsed',
|
|
23
22
|
flyout: 'closed',
|
|
@@ -286,29 +286,10 @@ function SideNavInternal({
|
|
|
286
286
|
const toggleVisibilityByClickOutsideOnMobile = useToggleSideNav({
|
|
287
287
|
trigger: 'click-outside-on-mobile'
|
|
288
288
|
});
|
|
289
|
-
useEffect(() => {
|
|
290
|
-
if (fg('platform_dst_nav4_side_nav_default_collapsed_api')) {
|
|
291
|
-
// This is the old version of the hook, so we skip it when the flag is enabled
|
|
292
|
-
return;
|
|
293
|
-
}
|
|
294
|
-
|
|
295
|
-
// Sync the visibility in context (provided in `<Root>`) with the local `defaultCollapsed` prop provided to `SideNav`
|
|
296
|
-
// after SSR hydration. This should only run once, after the initial render on the client.
|
|
297
|
-
setSideNavState({
|
|
298
|
-
desktop: initialDefaultCollapsed ? 'collapsed' : 'expanded',
|
|
299
|
-
mobile: 'collapsed',
|
|
300
|
-
flyout: 'closed',
|
|
301
|
-
lastTrigger: null
|
|
302
|
-
});
|
|
303
|
-
}, [initialDefaultCollapsed, setSideNavState]);
|
|
304
289
|
|
|
305
290
|
// Moving to `useLayoutEffect` so that there's no visual shift in non-SSR environments when using legacy API
|
|
306
291
|
// For SSR the new API is still necessary
|
|
307
292
|
useLayoutEffect(() => {
|
|
308
|
-
if (!fg('platform_dst_nav4_side_nav_default_collapsed_api')) {
|
|
309
|
-
// This is the new version of the hook, so we skip it when the flag is disabled
|
|
310
|
-
return;
|
|
311
|
-
}
|
|
312
293
|
if (sideNavState !== null) {
|
|
313
294
|
// Only need to do an initial sync if it hasn't been initialized from Root
|
|
314
295
|
return;
|
|
@@ -45,7 +45,7 @@ export const SideNavToggleButton = ({
|
|
|
45
45
|
|
|
46
46
|
// When default state is provided to `Root` the state in context will already be
|
|
47
47
|
// initialized in SSR
|
|
48
|
-
const [isSideNavExpanded, setIsSideNavExpanded] = useState(sideNavState === null
|
|
48
|
+
const [isSideNavExpanded, setIsSideNavExpanded] = useState(sideNavState === null ? !defaultCollapsed : isSideNavExpandedOnDesktop);
|
|
49
49
|
const ref = useContext(SideNavToggleButtonAttachRef);
|
|
50
50
|
const elementRef = useRef(null);
|
|
51
51
|
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import React, { useState } from 'react';
|
|
2
|
-
import { fg } from '@atlaskit/platform-feature-flags';
|
|
3
2
|
import { SetSideNavVisibilityState, SideNavVisibilityState } from './visibility-context';
|
|
4
3
|
|
|
5
4
|
/**
|
|
@@ -9,7 +8,7 @@ export const SideNavVisibilityProvider = ({
|
|
|
9
8
|
children,
|
|
10
9
|
defaultCollapsed
|
|
11
10
|
}) => {
|
|
12
|
-
const initialState = typeof defaultCollapsed === 'boolean'
|
|
11
|
+
const initialState = typeof defaultCollapsed === 'boolean' ? {
|
|
13
12
|
desktop: defaultCollapsed ? 'collapsed' : 'expanded',
|
|
14
13
|
mobile: 'collapsed',
|
|
15
14
|
flyout: 'closed',
|
|
@@ -294,29 +294,10 @@ function SideNavInternal(_ref) {
|
|
|
294
294
|
var toggleVisibilityByClickOutsideOnMobile = useToggleSideNav({
|
|
295
295
|
trigger: 'click-outside-on-mobile'
|
|
296
296
|
});
|
|
297
|
-
useEffect(function () {
|
|
298
|
-
if (fg('platform_dst_nav4_side_nav_default_collapsed_api')) {
|
|
299
|
-
// This is the old version of the hook, so we skip it when the flag is enabled
|
|
300
|
-
return;
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
// Sync the visibility in context (provided in `<Root>`) with the local `defaultCollapsed` prop provided to `SideNav`
|
|
304
|
-
// after SSR hydration. This should only run once, after the initial render on the client.
|
|
305
|
-
setSideNavState({
|
|
306
|
-
desktop: initialDefaultCollapsed ? 'collapsed' : 'expanded',
|
|
307
|
-
mobile: 'collapsed',
|
|
308
|
-
flyout: 'closed',
|
|
309
|
-
lastTrigger: null
|
|
310
|
-
});
|
|
311
|
-
}, [initialDefaultCollapsed, setSideNavState]);
|
|
312
297
|
|
|
313
298
|
// Moving to `useLayoutEffect` so that there's no visual shift in non-SSR environments when using legacy API
|
|
314
299
|
// For SSR the new API is still necessary
|
|
315
300
|
useLayoutEffect(function () {
|
|
316
|
-
if (!fg('platform_dst_nav4_side_nav_default_collapsed_api')) {
|
|
317
|
-
// This is the new version of the hook, so we skip it when the flag is disabled
|
|
318
|
-
return;
|
|
319
|
-
}
|
|
320
301
|
if (sideNavState !== null) {
|
|
321
302
|
// Only need to do an initial sync if it hasn't been initialized from Root
|
|
322
303
|
return;
|
|
@@ -48,7 +48,7 @@ export var SideNavToggleButton = function SideNavToggleButton(_ref) {
|
|
|
48
48
|
|
|
49
49
|
// When default state is provided to `Root` the state in context will already be
|
|
50
50
|
// initialized in SSR
|
|
51
|
-
var _useState = useState(sideNavState === null
|
|
51
|
+
var _useState = useState(sideNavState === null ? !defaultCollapsed : isSideNavExpandedOnDesktop),
|
|
52
52
|
_useState2 = _slicedToArray(_useState, 2),
|
|
53
53
|
isSideNavExpanded = _useState2[0],
|
|
54
54
|
setIsSideNavExpanded = _useState2[1];
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
2
|
import React, { useState } from 'react';
|
|
3
|
-
import { fg } from '@atlaskit/platform-feature-flags';
|
|
4
3
|
import { SetSideNavVisibilityState, SideNavVisibilityState } from './visibility-context';
|
|
5
4
|
|
|
6
5
|
/**
|
|
@@ -9,7 +8,7 @@ import { SetSideNavVisibilityState, SideNavVisibilityState } from './visibility-
|
|
|
9
8
|
export var SideNavVisibilityProvider = function SideNavVisibilityProvider(_ref) {
|
|
10
9
|
var children = _ref.children,
|
|
11
10
|
defaultCollapsed = _ref.defaultCollapsed;
|
|
12
|
-
var initialState = typeof defaultCollapsed === 'boolean'
|
|
11
|
+
var initialState = typeof defaultCollapsed === 'boolean' ? {
|
|
13
12
|
desktop: defaultCollapsed ? 'collapsed' : 'expanded',
|
|
14
13
|
mobile: 'collapsed',
|
|
15
14
|
flyout: 'closed',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/navigation-system",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.2.0",
|
|
4
4
|
"description": "The latest navigation system for Atlassian apps.",
|
|
5
5
|
"repository": "https://bitbucket.org/atlassian/atlassian-frontend-mirror",
|
|
6
6
|
"author": "Atlassian Pty Ltd",
|
|
@@ -147,9 +147,6 @@
|
|
|
147
147
|
}
|
|
148
148
|
},
|
|
149
149
|
"platform-feature-flags": {
|
|
150
|
-
"platform_dst_nav4_side_nav_default_collapsed_api": {
|
|
151
|
-
"type": "boolean"
|
|
152
|
-
},
|
|
153
150
|
"platform_dst_nav4_side_nav_toggle_ref_fix": {
|
|
154
151
|
"type": "boolean"
|
|
155
152
|
},
|