Collapse external nav links correctly in a menu (#1596)

This commit is contained in:
Konstantin Schaper
2021-03-17 19:45:15 +01:00
committed by GitHub
parent 26b65582ce
commit cf2e0b6f2b
4 changed files with 30 additions and 7 deletions

View File

@@ -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))

View File

@@ -47287,6 +47287,7 @@ exports[`Storyshots Layout|Footer Default 1`] = `
> >
<li> <li>
<a <a
className=""
href="https://www.scm-manager.org/" href="https://www.scm-manager.org/"
rel="noopener noreferrer" rel="noopener noreferrer"
target="_blank" target="_blank"
@@ -47314,6 +47315,7 @@ exports[`Storyshots Layout|Footer Default 1`] = `
> >
<li> <li>
<a <a
className=""
href="https://www.scm-manager.org/support/" href="https://www.scm-manager.org/support/"
rel="noopener noreferrer" rel="noopener noreferrer"
target="_blank" target="_blank"
@@ -47323,6 +47325,7 @@ exports[`Storyshots Layout|Footer Default 1`] = `
</li> </li>
<li> <li>
<a <a
className=""
href="https://cloudogu.com/en/scm-manager-enterprise/" href="https://cloudogu.com/en/scm-manager-enterprise/"
rel="noopener noreferrer" rel="noopener noreferrer"
target="_blank" target="_blank"
@@ -47410,6 +47413,7 @@ exports[`Storyshots Layout|Footer Full 1`] = `
> >
<li> <li>
<a <a
className=""
href="https://www.scm-manager.org/" href="https://www.scm-manager.org/"
rel="noopener noreferrer" rel="noopener noreferrer"
target="_blank" target="_blank"
@@ -47419,6 +47423,7 @@ exports[`Storyshots Layout|Footer Full 1`] = `
</li> </li>
<li> <li>
<a <a
className=""
href="#" href="#"
rel="noopener noreferrer" rel="noopener noreferrer"
target="_blank" target="_blank"
@@ -47428,6 +47433,7 @@ exports[`Storyshots Layout|Footer Full 1`] = `
</li> </li>
<li> <li>
<a <a
className=""
href="#" href="#"
rel="noopener noreferrer" rel="noopener noreferrer"
target="_blank" target="_blank"
@@ -47455,6 +47461,7 @@ exports[`Storyshots Layout|Footer Full 1`] = `
> >
<li> <li>
<a <a
className=""
href="https://www.scm-manager.org/support/" href="https://www.scm-manager.org/support/"
rel="noopener noreferrer" rel="noopener noreferrer"
target="_blank" target="_blank"
@@ -47464,6 +47471,7 @@ exports[`Storyshots Layout|Footer Full 1`] = `
</li> </li>
<li> <li>
<a <a
className=""
href="https://cloudogu.com/en/scm-manager-enterprise/" href="https://cloudogu.com/en/scm-manager-enterprise/"
rel="noopener noreferrer" rel="noopener noreferrer"
target="_blank" target="_blank"
@@ -47473,6 +47481,7 @@ exports[`Storyshots Layout|Footer Full 1`] = `
</li> </li>
<li> <li>
<a <a
className=""
href="#" href="#"
rel="noopener noreferrer" rel="noopener noreferrer"
target="_blank" target="_blank"
@@ -47551,6 +47560,7 @@ exports[`Storyshots Layout|Footer With Avatar 1`] = `
> >
<li> <li>
<a <a
className=""
href="https://www.scm-manager.org/" href="https://www.scm-manager.org/"
rel="noopener noreferrer" rel="noopener noreferrer"
target="_blank" target="_blank"
@@ -47578,6 +47588,7 @@ exports[`Storyshots Layout|Footer With Avatar 1`] = `
> >
<li> <li>
<a <a
className=""
href="https://www.scm-manager.org/support/" href="https://www.scm-manager.org/support/"
rel="noopener noreferrer" rel="noopener noreferrer"
target="_blank" target="_blank"
@@ -47587,6 +47598,7 @@ exports[`Storyshots Layout|Footer With Avatar 1`] = `
</li> </li>
<li> <li>
<a <a
className=""
href="https://cloudogu.com/en/scm-manager-enterprise/" href="https://cloudogu.com/en/scm-manager-enterprise/"
rel="noopener noreferrer" rel="noopener noreferrer"
target="_blank" target="_blank"
@@ -47666,6 +47678,7 @@ exports[`Storyshots Layout|Footer With Plugin Links 1`] = `
> >
<li> <li>
<a <a
className=""
href="https://www.scm-manager.org/" href="https://www.scm-manager.org/"
rel="noopener noreferrer" rel="noopener noreferrer"
target="_blank" target="_blank"
@@ -47675,6 +47688,7 @@ exports[`Storyshots Layout|Footer With Plugin Links 1`] = `
</li> </li>
<li> <li>
<a <a
className=""
href="#" href="#"
rel="noopener noreferrer" rel="noopener noreferrer"
target="_blank" target="_blank"
@@ -47684,6 +47698,7 @@ exports[`Storyshots Layout|Footer With Plugin Links 1`] = `
</li> </li>
<li> <li>
<a <a
className=""
href="#" href="#"
rel="noopener noreferrer" rel="noopener noreferrer"
target="_blank" target="_blank"
@@ -47711,6 +47726,7 @@ exports[`Storyshots Layout|Footer With Plugin Links 1`] = `
> >
<li> <li>
<a <a
className=""
href="https://www.scm-manager.org/support/" href="https://www.scm-manager.org/support/"
rel="noopener noreferrer" rel="noopener noreferrer"
target="_blank" target="_blank"
@@ -47720,6 +47736,7 @@ exports[`Storyshots Layout|Footer With Plugin Links 1`] = `
</li> </li>
<li> <li>
<a <a
className=""
href="https://cloudogu.com/en/scm-manager-enterprise/" href="https://cloudogu.com/en/scm-manager-enterprise/"
rel="noopener noreferrer" rel="noopener noreferrer"
target="_blank" target="_blank"
@@ -47729,6 +47746,7 @@ exports[`Storyshots Layout|Footer With Plugin Links 1`] = `
</li> </li>
<li> <li>
<a <a
className=""
href="#" href="#"
rel="noopener noreferrer" rel="noopener noreferrer"
target="_blank" target="_blank"

View File

@@ -25,10 +25,11 @@ import React, { FC } from "react";
type Props = { type Props = {
to: string; to: string;
className?: string;
}; };
const ExternalLink: FC<Props> = ({ to, children }) => ( const ExternalLink: FC<Props> = ({ to, children, className }) => (
<a href={to} target="_blank" rel="noopener noreferrer"> <a href={to} target="_blank" rel="noopener noreferrer" className={className}>
{children} {children}
</a> </a>
); );

View File

@@ -24,6 +24,7 @@
import React, { FC } from "react"; import React, { FC } from "react";
import classNames from "classnames"; import classNames from "classnames";
import ExternalLink from "./ExternalLink"; import ExternalLink from "./ExternalLink";
import useMenuContext from "./MenuContext";
type Props = { type Props = {
to: string; to: string;
@@ -31,9 +32,10 @@ type Props = {
label: string; label: string;
}; };
// TODO is it used in the menu? should it use MenuContext for collapse state?
const ExternalNavLink: FC<Props> = ({ to, icon, label }) => { const ExternalNavLink: FC<Props> = ({ to, icon, label }) => {
const context = useMenuContext();
const collapsed = context.isCollapsed();
let showIcon; let showIcon;
if (icon) { if (icon) {
showIcon = ( showIcon = (
@@ -44,10 +46,10 @@ const ExternalNavLink: FC<Props> = ({ to, icon, label }) => {
} }
return ( return (
<li> <li title={collapsed ? label : undefined}>
<ExternalLink to={to}> <ExternalLink to={to} className={collapsed ? "has-text-centered" : ""}>
{showIcon} {showIcon}
{label} {collapsed ? null : label}
</ExternalLink> </ExternalLink>
</li> </li>
); );