From 9af4219b32815823492a9a4c11ce71f7f6669a8a Mon Sep 17 00:00:00 2001 From: Shekar Siri Date: Fri, 28 Oct 2022 11:24:36 +0200 Subject: [PATCH 1/9] change(ui) - network url copy text --- .../components/shared/CopyText/CopyText.tsx | 33 +++++++++++++++++++ .../app/components/shared/CopyText/index.ts | 1 + .../FetchDetailsModal/FetchDetailsModal.js | 17 +++++++--- 3 files changed, 47 insertions(+), 4 deletions(-) create mode 100644 frontend/app/components/shared/CopyText/CopyText.tsx create mode 100644 frontend/app/components/shared/CopyText/index.ts diff --git a/frontend/app/components/shared/CopyText/CopyText.tsx b/frontend/app/components/shared/CopyText/CopyText.tsx new file mode 100644 index 000000000..6d505b58b --- /dev/null +++ b/frontend/app/components/shared/CopyText/CopyText.tsx @@ -0,0 +1,33 @@ +import React, { useState } from 'react'; +import { Tooltip } from 'react-tippy'; +import copy from 'copy-to-clipboard'; + +interface Props { + label?: string; + afterLabel?: string; + children: any; + content: string; +} +function CopyText(props: Props) { + const { children, label = 'Click to copy', afterLabel = 'Copied', content = '' } = props; + const [isCopied, setIsCopied] = useState(false); + const onClick = () => { + copy(content); + setIsCopied(true); + setTimeout(() => setIsCopied(false), 5000); + }; + return ( + // @ts-ignore + + {children} + + ); +} + +export default CopyText; diff --git a/frontend/app/components/shared/CopyText/index.ts b/frontend/app/components/shared/CopyText/index.ts new file mode 100644 index 000000000..3444d5f22 --- /dev/null +++ b/frontend/app/components/shared/CopyText/index.ts @@ -0,0 +1 @@ +export { default } from './CopyText'; diff --git a/frontend/app/components/shared/FetchDetailsModal/FetchDetailsModal.js b/frontend/app/components/shared/FetchDetailsModal/FetchDetailsModal.js index 43c9203af..1f7b21a1d 100644 --- a/frontend/app/components/shared/FetchDetailsModal/FetchDetailsModal.js +++ b/frontend/app/components/shared/FetchDetailsModal/FetchDetailsModal.js @@ -6,6 +6,7 @@ import Headers from './components/Headers'; import AnimatedSVG, { ICONS } from 'Shared/AnimatedSVG/AnimatedSVG'; import { TYPES } from 'Types/session/resource'; import { formatBytes } from 'App/utils'; +import CopyText from 'Shared/CopyText'; const HEADERS = 'HEADERS'; const REQUEST = 'REQUEST'; @@ -147,8 +148,8 @@ export default class FetchDetailsModal extends React.PureComponent {
Network Request
Name
-
- {resource.name} +
+ {resource.name}
@@ -207,14 +208,22 @@ export default class FetchDetailsModal extends React.PureComponent {