From 3935f391ecc37676b04b71996c757dd28867a32c Mon Sep 17 00:00:00 2001 From: hram_wh Date: Thu, 15 Sep 2022 12:39:35 +0530 Subject: [PATCH] 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(); + }} + > + + + + + +