Merge pull request #13688 from Ahampa07/feat/add-copy-entity-link-support-in-entity-page-context-menu
Add support for copy entity url in entity page context menu
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog': patch
|
||||
---
|
||||
|
||||
Added support for copy entity URL in entity page context menu
|
||||
@@ -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 React, { useState } from 'react';
|
||||
import FileCopyTwoToneIcon from '@material-ui/icons/FileCopyTwoTone';
|
||||
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 { useApi, alertApiRef } from '@backstage/core-plugin-api';
|
||||
|
||||
/** @public */
|
||||
export type EntityContextMenuClassKey = 'button';
|
||||
@@ -84,6 +86,14 @@ export function EntityContextMenu(props: EntityContextMenuProps) {
|
||||
setAnchorEl(undefined);
|
||||
};
|
||||
|
||||
const alertApi = useApi(alertApiRef);
|
||||
|
||||
const copyToClipboard = useCallback(() => {
|
||||
navigator.clipboard
|
||||
.writeText(window.location.toString())
|
||||
.then(() => alertApi.post({ message: 'Copied!', severity: 'info' }));
|
||||
}, [alertApi]);
|
||||
|
||||
const extraItems = UNSTABLE_extraContextMenuItems && [
|
||||
...UNSTABLE_extraContextMenuItems.map(item => (
|
||||
<MenuItem
|
||||
@@ -144,6 +154,17 @@ export function EntityContextMenu(props: EntityContextMenuProps) {
|
||||
</ListItemIcon>
|
||||
<ListItemText primary="Inspect entity" />
|
||||
</MenuItem>
|
||||
<MenuItem
|
||||
onClick={() => {
|
||||
onClose();
|
||||
copyToClipboard();
|
||||
}}
|
||||
>
|
||||
<ListItemIcon>
|
||||
<FileCopyTwoToneIcon fontSize="small" />
|
||||
</ListItemIcon>
|
||||
<ListItemText primary="Copy entity URL" />
|
||||
</MenuItem>
|
||||
</MenuList>
|
||||
</Popover>
|
||||
</>
|
||||
|
||||
Reference in New Issue
Block a user