fix: copy entity URL support insecure contexts

Signed-off-by: mingfu <mingfu@alauda.io>
This commit is contained in:
mingfu
2023-11-14 21:05:09 +08:00
parent 80d023a175
commit bc7e6d3eb9
2 changed files with 14 additions and 8 deletions
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog': patch
---
Fix copy entity url function in http contexts.
@@ -28,12 +28,13 @@ import { Theme, 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, { useCallback, useState } from 'react';
import React, { useEffect, useState } from 'react';
import { IconComponent } from '@backstage/core-plugin-api';
import { useEntityPermission } from '@backstage/plugin-catalog-react/alpha';
import { catalogEntityDeletePermission } from '@backstage/plugin-catalog-common/alpha';
import { UnregisterEntity, UnregisterEntityOptions } from './UnregisterEntity';
import { useApi, alertApiRef } from '@backstage/core-plugin-api';
import useCopyToClipboard from 'react-use/lib/useCopyToClipboard';
/** @public */
export type EntityContextMenuClassKey = 'button';
@@ -87,16 +88,16 @@ export function EntityContextMenu(props: EntityContextMenuProps) {
};
const alertApi = useApi(alertApiRef);
const copyToClipboard = useCallback(() => {
window.navigator.clipboard.writeText(window.location.toString()).then(() =>
const [copyState, copyToClipboard] = useCopyToClipboard();
useEffect(() => {
if (!copyState.error && copyState.value) {
alertApi.post({
message: 'Copied!',
severity: 'info',
display: 'transient',
}),
);
}, [alertApi]);
});
}
}, [copyState, alertApi]);
const extraItems = UNSTABLE_extraContextMenuItems && [
...UNSTABLE_extraContextMenuItems.map(item => (
@@ -163,7 +164,7 @@ export function EntityContextMenu(props: EntityContextMenuProps) {
<MenuItem
onClick={() => {
onClose();
copyToClipboard();
copyToClipboard(window.location.toString());
}}
>
<ListItemIcon>