From 3935f391ecc37676b04b71996c757dd28867a32c Mon Sep 17 00:00:00 2001 From: hram_wh Date: Thu, 15 Sep 2022 12:39:35 +0530 Subject: [PATCH 1/7] add support for copy enity url in enity page contex menu Signed-off-by: hram_wh --- .../EntityContextMenu/EntityContextMenu.tsx | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/plugins/catalog/src/components/EntityContextMenu/EntityContextMenu.tsx b/plugins/catalog/src/components/EntityContextMenu/EntityContextMenu.tsx index 41610ed13c..25d9a5242a 100644 --- a/plugins/catalog/src/components/EntityContextMenu/EntityContextMenu.tsx +++ b/plugins/catalog/src/components/EntityContextMenu/EntityContextMenu.tsx @@ -26,12 +26,14 @@ import { import { makeStyles } from '@material-ui/core/styles'; import BugReportIcon from '@material-ui/icons/BugReport'; import MoreVert from '@material-ui/icons/MoreVert'; +import FileCopyTwoToneIcon from '@material-ui/icons/FileCopyTwoTone'; import React, { useState } from 'react'; import { IconComponent } from '@backstage/core-plugin-api'; import { useEntityPermission } from '@backstage/plugin-catalog-react'; import { catalogEntityDeletePermission } from '@backstage/plugin-catalog-common'; import { BackstageTheme } from '@backstage/theme'; import { UnregisterEntity, UnregisterEntityOptions } from './UnregisterEntity'; +import Snackbar from '@material-ui/core/Snackbar'; /** @public */ export type EntityContextMenuClassKey = 'button'; @@ -84,6 +86,22 @@ export function EntityContextMenu(props: EntityContextMenuProps) { setAnchorEl(undefined); }; + const [state, setState] = useState({ + open: false, + vertical: 'top', + horizontal:'right' + }); + + const { open, vertical, horizontal } = state; + + const handleClose = () => { + setState({ ...state, open: false }); + }; + + const copyToClipboard = () => { + navigator.clipboard.writeText(window.location.toString()).then(()=> setState({...state, open:true})); + }; + const extraItems = UNSTABLE_extraContextMenuItems && [ ...UNSTABLE_extraContextMenuItems.map(item => ( + { + copyToClipboard(); + }} + > + + + + + + From ac2c30b7173a2f9279ac768b22ac34531a68992a Mon Sep 17 00:00:00 2001 From: hram_wh Date: Thu, 15 Sep 2022 16:42:59 +0530 Subject: [PATCH 2/7] fix style issue Signed-off-by: hram_wh --- .../src/components/EntityContextMenu/EntityContextMenu.tsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/plugins/catalog/src/components/EntityContextMenu/EntityContextMenu.tsx b/plugins/catalog/src/components/EntityContextMenu/EntityContextMenu.tsx index 25d9a5242a..92ed8c02a6 100644 --- a/plugins/catalog/src/components/EntityContextMenu/EntityContextMenu.tsx +++ b/plugins/catalog/src/components/EntityContextMenu/EntityContextMenu.tsx @@ -89,7 +89,7 @@ export function EntityContextMenu(props: EntityContextMenuProps) { const [state, setState] = useState({ open: false, vertical: 'top', - horizontal:'right' + horizontal: 'right', }); const { open, vertical, horizontal } = state; @@ -99,7 +99,9 @@ export function EntityContextMenu(props: EntityContextMenuProps) { }; const copyToClipboard = () => { - navigator.clipboard.writeText(window.location.toString()).then(()=> setState({...state, open:true})); + navigator.clipboard + .writeText(window.location.toString()) + .then(() => setState({ ...state, open: true })); }; const extraItems = UNSTABLE_extraContextMenuItems && [ From f87e38ecfa662d68abb9f0748e2d5cda001de530 Mon Sep 17 00:00:00 2001 From: hram_wh Date: Wed, 21 Sep 2022 13:28:16 +0530 Subject: [PATCH 3/7] changeset added Signed-off-by: hram_wh --- .changeset/young-spies-wait.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/young-spies-wait.md diff --git a/.changeset/young-spies-wait.md b/.changeset/young-spies-wait.md new file mode 100644 index 0000000000..1817085d08 --- /dev/null +++ b/.changeset/young-spies-wait.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog': major +--- + +Added support for copy entity url in entity page context menu From e89e1f614d15428b95c4e8731a31834739e975b1 Mon Sep 17 00:00:00 2001 From: hram_wh Date: Fri, 23 Sep 2022 13:16:20 +0530 Subject: [PATCH 4/7] changeset added Signed-off-by: hram_wh --- .changeset/warm-days-watch.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/warm-days-watch.md diff --git a/.changeset/warm-days-watch.md b/.changeset/warm-days-watch.md new file mode 100644 index 0000000000..b0a211c7a8 --- /dev/null +++ b/.changeset/warm-days-watch.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog': patch +--- + +Added support for copy entity URL in entity page context menu From bf983d06019666120a233d9fe1bfd802824eb163 Mon Sep 17 00:00:00 2001 From: hram_wh Date: Fri, 23 Sep 2022 13:22:27 +0530 Subject: [PATCH 5/7] deleted waste changset file Signed-off-by: hram_wh --- .changeset/young-spies-wait.md | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 .changeset/young-spies-wait.md diff --git a/.changeset/young-spies-wait.md b/.changeset/young-spies-wait.md deleted file mode 100644 index 1817085d08..0000000000 --- a/.changeset/young-spies-wait.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog': major ---- - -Added support for copy entity url in entity page context menu From 6389362f0dcbdf0e7cea34b0ada6268bcf98e0de Mon Sep 17 00:00:00 2001 From: hram_wh Date: Wed, 28 Sep 2022 11:51:03 +0530 Subject: [PATCH 6/7] requested changes made Signed-off-by: hram_wh --- .../EntityContextMenu/EntityContextMenu.tsx | 30 ++++--------------- 1 file changed, 6 insertions(+), 24 deletions(-) diff --git a/plugins/catalog/src/components/EntityContextMenu/EntityContextMenu.tsx b/plugins/catalog/src/components/EntityContextMenu/EntityContextMenu.tsx index 92ed8c02a6..989682fde6 100644 --- a/plugins/catalog/src/components/EntityContextMenu/EntityContextMenu.tsx +++ b/plugins/catalog/src/components/EntityContextMenu/EntityContextMenu.tsx @@ -27,13 +27,13 @@ import { makeStyles } from '@material-ui/core/styles'; import BugReportIcon from '@material-ui/icons/BugReport'; import MoreVert from '@material-ui/icons/MoreVert'; import FileCopyTwoToneIcon from '@material-ui/icons/FileCopyTwoTone'; -import React, { useState } from 'react'; +import React, { useCallback, useState } from 'react'; import { IconComponent } from '@backstage/core-plugin-api'; import { useEntityPermission } from '@backstage/plugin-catalog-react'; import { catalogEntityDeletePermission } from '@backstage/plugin-catalog-common'; import { BackstageTheme } from '@backstage/theme'; import { UnregisterEntity, UnregisterEntityOptions } from './UnregisterEntity'; -import Snackbar from '@material-ui/core/Snackbar'; +import { useApi, alertApiRef } from '@backstage/core-plugin-api'; /** @public */ export type EntityContextMenuClassKey = 'button'; @@ -86,23 +86,13 @@ export function EntityContextMenu(props: EntityContextMenuProps) { setAnchorEl(undefined); }; - const [state, setState] = useState({ - open: false, - vertical: 'top', - horizontal: 'right', - }); + const alertApi = useApi(alertApiRef); - const { open, vertical, horizontal } = state; - - const handleClose = () => { - setState({ ...state, open: false }); - }; - - const copyToClipboard = () => { + const copyToClipboard = useCallback(() => { navigator.clipboard .writeText(window.location.toString()) - .then(() => setState({ ...state, open: true })); - }; + .then(() => alertApi.post({ message: 'Copied!', severity: 'info' })); + }, []); const extraItems = UNSTABLE_extraContextMenuItems && [ ...UNSTABLE_extraContextMenuItems.map(item => ( @@ -174,14 +164,6 @@ export function EntityContextMenu(props: EntityContextMenuProps) { - From 692db580b21033c7a122d22d1f1d1558a9de7e7f Mon Sep 17 00:00:00 2001 From: hram_wh Date: Tue, 4 Oct 2022 10:55:37 +0530 Subject: [PATCH 7/7] req changes made Signed-off-by: hram_wh --- .../src/components/EntityContextMenu/EntityContextMenu.tsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/plugins/catalog/src/components/EntityContextMenu/EntityContextMenu.tsx b/plugins/catalog/src/components/EntityContextMenu/EntityContextMenu.tsx index 989682fde6..49952bdffe 100644 --- a/plugins/catalog/src/components/EntityContextMenu/EntityContextMenu.tsx +++ b/plugins/catalog/src/components/EntityContextMenu/EntityContextMenu.tsx @@ -92,7 +92,7 @@ export function EntityContextMenu(props: EntityContextMenuProps) { navigator.clipboard .writeText(window.location.toString()) .then(() => alertApi.post({ message: 'Copied!', severity: 'info' })); - }, []); + }, [alertApi]); const extraItems = UNSTABLE_extraContextMenuItems && [ ...UNSTABLE_extraContextMenuItems.map(item => ( @@ -156,13 +156,14 @@ export function EntityContextMenu(props: EntityContextMenuProps) { { + onClose(); copyToClipboard(); }} > - +