fix: copy entity URL support insecure contexts
Signed-off-by: mingfu <mingfu@alauda.io>
This commit is contained in:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user