diff --git a/src/components/Editor/PipelineDetails.tsx b/src/components/Editor/PipelineDetails.tsx
index e2210c342..ecc63f215 100644
--- a/src/components/Editor/PipelineDetails.tsx
+++ b/src/components/Editor/PipelineDetails.tsx
@@ -3,6 +3,7 @@ import { useEffect, useState } from "react";
import { PipelineValidationList } from "@/components/Editor/components/PipelineValidationList/PipelineValidationList";
import { useValidationIssueNavigation } from "@/components/Editor/hooks/useValidationIssueNavigation";
+import { CopyText } from "@/components/shared/CopyText/CopyText";
import { Button } from "@/components/ui/button";
import { Icon } from "@/components/ui/icon";
import { InlineStack } from "@/components/ui/layout";
@@ -134,9 +135,9 @@ const PipelineDetails = () => {
{/* Header */}
-
+
{componentSpec.name ?? "Unnamed Pipeline"}
-
+
diff --git a/src/components/shared/CopyText/CopyText.tsx b/src/components/shared/CopyText/CopyText.tsx
index a36c3285a..74f843e69 100644
--- a/src/components/shared/CopyText/CopyText.tsx
+++ b/src/components/shared/CopyText/CopyText.tsx
@@ -10,9 +10,14 @@ import { copyToClipboard } from "@/utils/string";
interface CopyTextProps {
children: string;
className?: string;
+ alwaysShowButton?: boolean;
}
-export const CopyText = ({ children, className }: CopyTextProps) => {
+export const CopyText = ({
+ children,
+ className,
+ alwaysShowButton = false,
+}: CopyTextProps) => {
const [isCopied, setIsCopied] = useState(false);
const [isHovered, setIsHovered] = useState(false);
@@ -34,7 +39,6 @@ export const CopyText = ({ children, className }: CopyTextProps) => {
}, []);
return (
-
{
-
);
};
+
+interface CopyIconProps {
+ isCopied: boolean;
+ alwaysShow: boolean;
+ onAnimationEnd: () => void;
+}
+//
+const CopyIcon = ({ isCopied, alwaysShow, onAnimationEnd }: CopyIconProps) => (
+
+ {isCopied ? (
+
+
+
+ ) : (
+
+ )}
+
+);