From f11e50ea712e939039a3dc5ccd0b50b4a903f9f8 Mon Sep 17 00:00:00 2001 From: Deepak Bhardwaj Date: Mon, 28 Jun 2021 21:05:11 +0530 Subject: [PATCH 1/6] feat: open external tools in new tab Signed-off-by: Deepak Bhardwaj --- .changeset/fair-falcons-scream.md | 5 +++++ plugins/explore/src/components/ToolCard/ToolCard.tsx | 8 +++++++- 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 .changeset/fair-falcons-scream.md diff --git a/.changeset/fair-falcons-scream.md b/.changeset/fair-falcons-scream.md new file mode 100644 index 0000000000..5ce4b40265 --- /dev/null +++ b/.changeset/fair-falcons-scream.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-explore': patch +--- + +Enhanced tools card to open external tools in new tab diff --git a/plugins/explore/src/components/ToolCard/ToolCard.tsx b/plugins/explore/src/components/ToolCard/ToolCard.tsx index 2baa0cffda..00c9851865 100644 --- a/plugins/explore/src/components/ToolCard/ToolCard.tsx +++ b/plugins/explore/src/components/ToolCard/ToolCard.tsx @@ -63,6 +63,7 @@ export const ToolCard = ({ card, objectFit }: Props) => { const classes = useStyles(); const { title, description, url, image, lifecycle, tags } = card; + const isExternalUrl = url.startsWith('https://') || url.startsWith('http://'); return ( @@ -97,7 +98,12 @@ export const ToolCard = ({ card, objectFit }: Props) => { )} - From bbdeb50ba7671a0f2bd93d5800fc36760cfaea9d Mon Sep 17 00:00:00 2001 From: Deepak Bhardwaj Date: Wed, 30 Jun 2021 21:53:09 +0530 Subject: [PATCH 2/6] Replaced material button to core-components Signed-off-by: Deepak Bhardwaj --- packages/core-components/src/components/Link/Link.tsx | 10 +++++++++- plugins/explore/src/components/ToolCard/ToolCard.tsx | 7 +++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/packages/core-components/src/components/Link/Link.tsx b/packages/core-components/src/components/Link/Link.tsx index dd169390a5..89f5a69245 100644 --- a/packages/core-components/src/components/Link/Link.tsx +++ b/packages/core-components/src/components/Link/Link.tsx @@ -29,6 +29,7 @@ export const isExternalUri = (uri: string) => /^([a-z+.-]+):/.test(uri); export type LinkProps = MaterialLinkProps & RouterLinkProps & { component?: ElementType; + externalLinkTarget?: undefined | '_blank'; }; /** @@ -39,7 +40,14 @@ export const Link = React.forwardRef((props, ref) => { const to = String(props.to); return isExternalUri(to) ? ( // External links - + ) : ( // Interact with React Router for internal links diff --git a/plugins/explore/src/components/ToolCard/ToolCard.tsx b/plugins/explore/src/components/ToolCard/ToolCard.tsx index 00c9851865..584d0a54a6 100644 --- a/plugins/explore/src/components/ToolCard/ToolCard.tsx +++ b/plugins/explore/src/components/ToolCard/ToolCard.tsx @@ -18,7 +18,6 @@ import { ExploreTool } from '@backstage/plugin-explore-react'; import { BackstageTheme } from '@backstage/theme'; import { Box, - Button, Card, CardActions, CardContent, @@ -27,6 +26,7 @@ import { makeStyles, Typography, } from '@material-ui/core'; +import { Button } from '@backstage/core-components'; import classNames from 'classnames'; import React from 'react'; @@ -63,7 +63,6 @@ export const ToolCard = ({ card, objectFit }: Props) => { const classes = useStyles(); const { title, description, url, image, lifecycle, tags } = card; - const isExternalUrl = url.startsWith('https://') || url.startsWith('http://'); return ( @@ -99,9 +98,9 @@ export const ToolCard = ({ card, objectFit }: Props) => { From 9bb672c06a7af41d976b76f7d34581c6abb9ca88 Mon Sep 17 00:00:00 2001 From: Deepak Bhardwaj Date: Thu, 1 Jul 2021 19:39:37 +0530 Subject: [PATCH 5/6] Open http external links in new window by default Signed-off-by: Deepak Bhardwaj --- packages/core-components/src/components/Link/Link.tsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/core-components/src/components/Link/Link.tsx b/packages/core-components/src/components/Link/Link.tsx index 67a5a4994b..7853c4f52f 100644 --- a/packages/core-components/src/components/Link/Link.tsx +++ b/packages/core-components/src/components/Link/Link.tsx @@ -37,12 +37,14 @@ export type LinkProps = MaterialLinkProps & */ export const Link = React.forwardRef((props, ref) => { const to = String(props.to); - return isExternalUri(to) ? ( + const external = isExternalUri(to); + const newWindow = external && !!/^https?:/.exec(to); + return external ? ( // External links ) : ( From 6494c09b0914255179fcf2872cf9ba11d0bb3558 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Thu, 1 Jul 2021 16:56:37 +0200 Subject: [PATCH 6/6] manually patch snapshot MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- plugins/git-release-manager/src/features/Features.test.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/git-release-manager/src/features/Features.test.tsx b/plugins/git-release-manager/src/features/Features.test.tsx index ac3004f690..b5404a21d9 100644 --- a/plugins/git-release-manager/src/features/Features.test.tsx +++ b/plugins/git-release-manager/src/features/Features.test.tsx @@ -69,6 +69,7 @@ describe('Features', () => {