diff --git a/gradle/changelog/non-collapsing-external-nav-link.yaml b/gradle/changelog/non-collapsing-external-nav-link.yaml new file mode 100644 index 0000000000..28868bd306 --- /dev/null +++ b/gradle/changelog/non-collapsing-external-nav-link.yaml @@ -0,0 +1,2 @@ +- type: fixed + description: external nav links now correctly collapse when used in a menu ([#1596](https://github.com/scm-manager/scm-manager/pull/1596)) diff --git a/scm-ui/ui-components/src/__snapshots__/storyshots.test.ts.snap b/scm-ui/ui-components/src/__snapshots__/storyshots.test.ts.snap index 6edfcb550a..699095fe05 100644 --- a/scm-ui/ui-components/src/__snapshots__/storyshots.test.ts.snap +++ b/scm-ui/ui-components/src/__snapshots__/storyshots.test.ts.snap @@ -47287,6 +47287,7 @@ exports[`Storyshots Layout|Footer Default 1`] = ` >
  • = ({ to, children }) => ( - +const ExternalLink: FC = ({ to, children, className }) => ( + {children} ); diff --git a/scm-ui/ui-components/src/navigation/ExternalNavLink.tsx b/scm-ui/ui-components/src/navigation/ExternalNavLink.tsx index 3b88b495ae..6684d9f0f6 100644 --- a/scm-ui/ui-components/src/navigation/ExternalNavLink.tsx +++ b/scm-ui/ui-components/src/navigation/ExternalNavLink.tsx @@ -24,6 +24,7 @@ import React, { FC } from "react"; import classNames from "classnames"; import ExternalLink from "./ExternalLink"; +import useMenuContext from "./MenuContext"; type Props = { to: string; @@ -31,9 +32,10 @@ type Props = { label: string; }; -// TODO is it used in the menu? should it use MenuContext for collapse state? - const ExternalNavLink: FC = ({ to, icon, label }) => { + const context = useMenuContext(); + const collapsed = context.isCollapsed(); + let showIcon; if (icon) { showIcon = ( @@ -44,10 +46,10 @@ const ExternalNavLink: FC = ({ to, icon, label }) => { } return ( -
  • - +
  • + {showIcon} - {label} + {collapsed ? null : label}
  • );