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 => (
+
+
>