@atlaskit/navigation-system 5.8.2 → 5.9.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,12 @@
|
|
|
1
1
|
# @atlassian/navigation-system
|
|
2
2
|
|
|
3
|
+
## 5.9.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`3665e60cbf959`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/3665e60cbf959) -
|
|
8
|
+
Fixes a bug that could cause side nav animations to apply on initial load
|
|
9
|
+
|
|
3
10
|
## 5.8.2
|
|
4
11
|
|
|
5
12
|
### Patch Changes
|
|
@@ -713,24 +713,36 @@ function SideNavInternal(_ref) {
|
|
|
713
713
|
panelId: _constants.sideNavPanelSplitterId
|
|
714
714
|
});
|
|
715
715
|
var isFlyoutClosed = (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'closed' || (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === undefined;
|
|
716
|
+
var isExpandedStateDifferentFromInitial = isExpandedOnMobile || isExpandedOnDesktop !== initialIsExpandedOnDesktop;
|
|
716
717
|
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
718
|
+
/**
|
|
719
|
+
* Used to track (between renders) if the expanded state of the side nav has ever changed since mount.
|
|
720
|
+
*
|
|
721
|
+
* Cannot rely solely on `isExpandedStateDifferentFromInitial` because the expanded state can go back to the initial state.
|
|
722
|
+
*/
|
|
723
|
+
var hasExpandedStateChangedRef = (0, _react.useRef)(false);
|
|
720
724
|
(0, _react.useEffect)(function () {
|
|
721
|
-
if (
|
|
725
|
+
if (hasExpandedStateChangedRef.current) {
|
|
722
726
|
return;
|
|
723
727
|
}
|
|
724
|
-
if (
|
|
725
|
-
|
|
728
|
+
if (isExpandedStateDifferentFromInitial) {
|
|
729
|
+
hasExpandedStateChangedRef.current = true;
|
|
726
730
|
}
|
|
727
|
-
}, [
|
|
731
|
+
}, [isExpandedStateDifferentFromInitial]);
|
|
732
|
+
|
|
733
|
+
/**
|
|
734
|
+
* If the expanded state of the side nav has ever changed since mount.
|
|
735
|
+
*
|
|
736
|
+
* Used to prevent sidebar expand animations from running on the initial load.
|
|
737
|
+
* Otherwise, the `@starting-style` rule will cause the sidebar to slide in initially.
|
|
738
|
+
*/
|
|
739
|
+
var hasExpandedStateChanged = isExpandedStateDifferentFromInitial || hasExpandedStateChangedRef.current;
|
|
728
740
|
|
|
729
741
|
// This is only used for the regular expand and collapse animations, not the flyout animations.
|
|
730
|
-
var shouldShowSidebarToggleAnimation =
|
|
742
|
+
var shouldShowSidebarToggleAnimation = isFhsEnabled &&
|
|
731
743
|
// We do not apply the animation styles on the initial render, as the `@starting-style` rule will cause the sidebar to
|
|
732
744
|
// slide in initially.
|
|
733
|
-
|
|
745
|
+
hasExpandedStateChanged &&
|
|
734
746
|
// We also do not apply the animation styles if the side nav is in flyout mode to make sure we don't override flyout styles.
|
|
735
747
|
// If we instead try to unset the `transform` property in the flyout styles using `transform: initial`, it results in the entire
|
|
736
748
|
// flyout animation being disabled.
|
|
@@ -758,7 +770,7 @@ function SideNavInternal(_ref) {
|
|
|
758
770
|
style: (0, _defineProperty2.default)({}, _constants.sideNavVar, clampedWidth),
|
|
759
771
|
ref: mergedRef,
|
|
760
772
|
"data-testid": testId,
|
|
761
|
-
className: (0, _runtime.ax)([styles.root, isExpandedOnDesktop && !isExpandedOnMobile && !isFlyoutVisible && styles.hiddenMobileOnly, !isExpandedOnDesktop && isExpandedOnMobile && !isFlyoutVisible && styles.hiddenDesktopOnly, !isExpandedOnDesktop && !isExpandedOnMobile && !isFlyoutVisible && styles.hiddenMobileAndDesktop, isFhsEnabled && styles.animationRTLSupport, shouldShowSidebarToggleAnimation &&
|
|
773
|
+
className: (0, _runtime.ax)([styles.root, isExpandedOnDesktop && !isExpandedOnMobile && !isFlyoutVisible && styles.hiddenMobileOnly, !isExpandedOnDesktop && isExpandedOnMobile && !isFlyoutVisible && styles.hiddenDesktopOnly, !isExpandedOnDesktop && !isExpandedOnMobile && !isFlyoutVisible && styles.hiddenMobileAndDesktop, isFhsEnabled && styles.animationRTLSupport, shouldShowSidebarToggleAnimation && styles.animationBaseStyles, isExpandedOnMobile && shouldShowSidebarToggleAnimation && styles.expandAnimationMobile, !isExpandedOnMobile && shouldShowSidebarToggleAnimation && styles.collapseAnimationMobile, isExpandedOnDesktop && shouldShowSidebarToggleAnimation && styles.expandAnimationDesktop, !isExpandedOnDesktop && shouldShowSidebarToggleAnimation && styles.collapseAnimationDesktop, (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'open' && !isFhsEnabled && styles.flyoutOpen, (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'triggered-animate-close' && !isFhsEnabled && styles.flyoutAnimateClosed, ((sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'open' || (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'triggered-animate-close') && !isFirefox && isFhsEnabled && styles.flyoutBaseStylesFullHeightSidebar, (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'triggered-animate-close' && !isFirefox && isFhsEnabled && styles.flyoutAnimateClosedFullHeightSidebar, (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'open' && !isFirefox && isFhsEnabled && styles.flyoutOpenFullHeightSidebar, (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'triggered-animate-close' && !isFirefox && isFhsEnabled && styles.flyoutAnimateClosedFullHeightSidebar, isFlyoutClosed && isFhsEnabled && styles.fullHeightSidebar])
|
|
762
774
|
}), /*#__PURE__*/React.createElement(_hoistUtils.DangerouslyHoistCssVarToDocumentRoot, {
|
|
763
775
|
variableName: _constants.sideNavLiveWidthVar,
|
|
764
776
|
value: "0px",
|
|
@@ -700,24 +700,36 @@ function SideNavInternal({
|
|
|
700
700
|
panelId: sideNavPanelSplitterId
|
|
701
701
|
});
|
|
702
702
|
const isFlyoutClosed = (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'closed' || (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === undefined;
|
|
703
|
+
const isExpandedStateDifferentFromInitial = isExpandedOnMobile || isExpandedOnDesktop !== initialIsExpandedOnDesktop;
|
|
703
704
|
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
705
|
+
/**
|
|
706
|
+
* Used to track (between renders) if the expanded state of the side nav has ever changed since mount.
|
|
707
|
+
*
|
|
708
|
+
* Cannot rely solely on `isExpandedStateDifferentFromInitial` because the expanded state can go back to the initial state.
|
|
709
|
+
*/
|
|
710
|
+
const hasExpandedStateChangedRef = useRef(false);
|
|
707
711
|
useEffect(() => {
|
|
708
|
-
if (
|
|
712
|
+
if (hasExpandedStateChangedRef.current) {
|
|
709
713
|
return;
|
|
710
714
|
}
|
|
711
|
-
if (
|
|
712
|
-
|
|
715
|
+
if (isExpandedStateDifferentFromInitial) {
|
|
716
|
+
hasExpandedStateChangedRef.current = true;
|
|
713
717
|
}
|
|
714
|
-
}, [
|
|
718
|
+
}, [isExpandedStateDifferentFromInitial]);
|
|
719
|
+
|
|
720
|
+
/**
|
|
721
|
+
* If the expanded state of the side nav has ever changed since mount.
|
|
722
|
+
*
|
|
723
|
+
* Used to prevent sidebar expand animations from running on the initial load.
|
|
724
|
+
* Otherwise, the `@starting-style` rule will cause the sidebar to slide in initially.
|
|
725
|
+
*/
|
|
726
|
+
const hasExpandedStateChanged = isExpandedStateDifferentFromInitial || hasExpandedStateChangedRef.current;
|
|
715
727
|
|
|
716
728
|
// This is only used for the regular expand and collapse animations, not the flyout animations.
|
|
717
|
-
const shouldShowSidebarToggleAnimation =
|
|
729
|
+
const shouldShowSidebarToggleAnimation = isFhsEnabled &&
|
|
718
730
|
// We do not apply the animation styles on the initial render, as the `@starting-style` rule will cause the sidebar to
|
|
719
731
|
// slide in initially.
|
|
720
|
-
|
|
732
|
+
hasExpandedStateChanged &&
|
|
721
733
|
// We also do not apply the animation styles if the side nav is in flyout mode to make sure we don't override flyout styles.
|
|
722
734
|
// If we instead try to unset the `transform` property in the flyout styles using `transform: initial`, it results in the entire
|
|
723
735
|
// flyout animation being disabled.
|
|
@@ -748,7 +760,7 @@ function SideNavInternal({
|
|
|
748
760
|
},
|
|
749
761
|
ref: mergedRef,
|
|
750
762
|
"data-testid": testId,
|
|
751
|
-
className: ax([styles.root, isExpandedOnDesktop && !isExpandedOnMobile && !isFlyoutVisible && styles.hiddenMobileOnly, !isExpandedOnDesktop && isExpandedOnMobile && !isFlyoutVisible && styles.hiddenDesktopOnly, !isExpandedOnDesktop && !isExpandedOnMobile && !isFlyoutVisible && styles.hiddenMobileAndDesktop, isFhsEnabled && styles.animationRTLSupport, shouldShowSidebarToggleAnimation &&
|
|
763
|
+
className: ax([styles.root, isExpandedOnDesktop && !isExpandedOnMobile && !isFlyoutVisible && styles.hiddenMobileOnly, !isExpandedOnDesktop && isExpandedOnMobile && !isFlyoutVisible && styles.hiddenDesktopOnly, !isExpandedOnDesktop && !isExpandedOnMobile && !isFlyoutVisible && styles.hiddenMobileAndDesktop, isFhsEnabled && styles.animationRTLSupport, shouldShowSidebarToggleAnimation && styles.animationBaseStyles, isExpandedOnMobile && shouldShowSidebarToggleAnimation && styles.expandAnimationMobile, !isExpandedOnMobile && shouldShowSidebarToggleAnimation && styles.collapseAnimationMobile, isExpandedOnDesktop && shouldShowSidebarToggleAnimation && styles.expandAnimationDesktop, !isExpandedOnDesktop && shouldShowSidebarToggleAnimation && styles.collapseAnimationDesktop, (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'open' && !isFhsEnabled && styles.flyoutOpen, (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'triggered-animate-close' && !isFhsEnabled && styles.flyoutAnimateClosed, ((sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'open' || (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'triggered-animate-close') && !isFirefox && isFhsEnabled && styles.flyoutBaseStylesFullHeightSidebar, (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'triggered-animate-close' && !isFirefox && isFhsEnabled && styles.flyoutAnimateClosedFullHeightSidebar, (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'open' && !isFirefox && isFhsEnabled && styles.flyoutOpenFullHeightSidebar, (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'triggered-animate-close' && !isFirefox && isFhsEnabled && styles.flyoutAnimateClosedFullHeightSidebar, isFlyoutClosed && isFhsEnabled && styles.fullHeightSidebar])
|
|
752
764
|
}), /*#__PURE__*/React.createElement(DangerouslyHoistCssVarToDocumentRoot, {
|
|
753
765
|
variableName: sideNavLiveWidthVar,
|
|
754
766
|
value: "0px",
|
|
@@ -703,24 +703,36 @@ function SideNavInternal(_ref) {
|
|
|
703
703
|
panelId: sideNavPanelSplitterId
|
|
704
704
|
});
|
|
705
705
|
var isFlyoutClosed = (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'closed' || (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === undefined;
|
|
706
|
+
var isExpandedStateDifferentFromInitial = isExpandedOnMobile || isExpandedOnDesktop !== initialIsExpandedOnDesktop;
|
|
706
707
|
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
708
|
+
/**
|
|
709
|
+
* Used to track (between renders) if the expanded state of the side nav has ever changed since mount.
|
|
710
|
+
*
|
|
711
|
+
* Cannot rely solely on `isExpandedStateDifferentFromInitial` because the expanded state can go back to the initial state.
|
|
712
|
+
*/
|
|
713
|
+
var hasExpandedStateChangedRef = useRef(false);
|
|
710
714
|
useEffect(function () {
|
|
711
|
-
if (
|
|
715
|
+
if (hasExpandedStateChangedRef.current) {
|
|
712
716
|
return;
|
|
713
717
|
}
|
|
714
|
-
if (
|
|
715
|
-
|
|
718
|
+
if (isExpandedStateDifferentFromInitial) {
|
|
719
|
+
hasExpandedStateChangedRef.current = true;
|
|
716
720
|
}
|
|
717
|
-
}, [
|
|
721
|
+
}, [isExpandedStateDifferentFromInitial]);
|
|
722
|
+
|
|
723
|
+
/**
|
|
724
|
+
* If the expanded state of the side nav has ever changed since mount.
|
|
725
|
+
*
|
|
726
|
+
* Used to prevent sidebar expand animations from running on the initial load.
|
|
727
|
+
* Otherwise, the `@starting-style` rule will cause the sidebar to slide in initially.
|
|
728
|
+
*/
|
|
729
|
+
var hasExpandedStateChanged = isExpandedStateDifferentFromInitial || hasExpandedStateChangedRef.current;
|
|
718
730
|
|
|
719
731
|
// This is only used for the regular expand and collapse animations, not the flyout animations.
|
|
720
|
-
var shouldShowSidebarToggleAnimation =
|
|
732
|
+
var shouldShowSidebarToggleAnimation = isFhsEnabled &&
|
|
721
733
|
// We do not apply the animation styles on the initial render, as the `@starting-style` rule will cause the sidebar to
|
|
722
734
|
// slide in initially.
|
|
723
|
-
|
|
735
|
+
hasExpandedStateChanged &&
|
|
724
736
|
// We also do not apply the animation styles if the side nav is in flyout mode to make sure we don't override flyout styles.
|
|
725
737
|
// If we instead try to unset the `transform` property in the flyout styles using `transform: initial`, it results in the entire
|
|
726
738
|
// flyout animation being disabled.
|
|
@@ -748,7 +760,7 @@ function SideNavInternal(_ref) {
|
|
|
748
760
|
style: _defineProperty({}, sideNavVar, clampedWidth),
|
|
749
761
|
ref: mergedRef,
|
|
750
762
|
"data-testid": testId,
|
|
751
|
-
className: ax([styles.root, isExpandedOnDesktop && !isExpandedOnMobile && !isFlyoutVisible && styles.hiddenMobileOnly, !isExpandedOnDesktop && isExpandedOnMobile && !isFlyoutVisible && styles.hiddenDesktopOnly, !isExpandedOnDesktop && !isExpandedOnMobile && !isFlyoutVisible && styles.hiddenMobileAndDesktop, isFhsEnabled && styles.animationRTLSupport, shouldShowSidebarToggleAnimation &&
|
|
763
|
+
className: ax([styles.root, isExpandedOnDesktop && !isExpandedOnMobile && !isFlyoutVisible && styles.hiddenMobileOnly, !isExpandedOnDesktop && isExpandedOnMobile && !isFlyoutVisible && styles.hiddenDesktopOnly, !isExpandedOnDesktop && !isExpandedOnMobile && !isFlyoutVisible && styles.hiddenMobileAndDesktop, isFhsEnabled && styles.animationRTLSupport, shouldShowSidebarToggleAnimation && styles.animationBaseStyles, isExpandedOnMobile && shouldShowSidebarToggleAnimation && styles.expandAnimationMobile, !isExpandedOnMobile && shouldShowSidebarToggleAnimation && styles.collapseAnimationMobile, isExpandedOnDesktop && shouldShowSidebarToggleAnimation && styles.expandAnimationDesktop, !isExpandedOnDesktop && shouldShowSidebarToggleAnimation && styles.collapseAnimationDesktop, (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'open' && !isFhsEnabled && styles.flyoutOpen, (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'triggered-animate-close' && !isFhsEnabled && styles.flyoutAnimateClosed, ((sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'open' || (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'triggered-animate-close') && !isFirefox && isFhsEnabled && styles.flyoutBaseStylesFullHeightSidebar, (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'triggered-animate-close' && !isFirefox && isFhsEnabled && styles.flyoutAnimateClosedFullHeightSidebar, (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'open' && !isFirefox && isFhsEnabled && styles.flyoutOpenFullHeightSidebar, (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'triggered-animate-close' && !isFirefox && isFhsEnabled && styles.flyoutAnimateClosedFullHeightSidebar, isFlyoutClosed && isFhsEnabled && styles.fullHeightSidebar])
|
|
752
764
|
}), /*#__PURE__*/React.createElement(DangerouslyHoistCssVarToDocumentRoot, {
|
|
753
765
|
variableName: sideNavLiveWidthVar,
|
|
754
766
|
value: "0px",
|
package/package.json
CHANGED