This is an automated email from the ASF dual-hosted git repository.

bbovenzi pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new 0dca308dc58 feat: make clipboard hover (#56382)
0dca308dc58 is described below

commit 0dca308dc58a8025ab299fbc06dfa368e393e62d
Author: LI,JHE-CHEN <[email protected]>
AuthorDate: Wed Oct 8 13:44:12 2025 -0400

    feat: make clipboard hover (#56382)
---
 .../src/pages/TaskInstance/RenderedTemplates.tsx   | 45 ++++++++++++++--------
 1 file changed, 29 insertions(+), 16 deletions(-)

diff --git 
a/airflow-core/src/airflow/ui/src/pages/TaskInstance/RenderedTemplates.tsx 
b/airflow-core/src/airflow/ui/src/pages/TaskInstance/RenderedTemplates.tsx
index c3848e192ad..c949107555c 100644
--- a/airflow-core/src/airflow/ui/src/pages/TaskInstance/RenderedTemplates.tsx
+++ b/airflow-core/src/airflow/ui/src/pages/TaskInstance/RenderedTemplates.tsx
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { Box, HStack, Table } from "@chakra-ui/react";
+import { Box, Table } from "@chakra-ui/react";
 import { useParams } from "react-router-dom";
 import { PrismLight as SyntaxHighlighter } from "react-syntax-highlighter";
 import bash from "react-syntax-highlighter/dist/esm/languages/prism/bash";
@@ -61,24 +61,37 @@ export const RenderedTemplates = () => {
                 <Table.Row key={key}>
                   <Table.Cell>{key}</Table.Cell>
                   <Table.Cell>
-                    <HStack alignItems="flex-start">
-                      <Box flex="1">
-                        <Box as="pre" borderRadius="md" fontSize="sm" m={0} 
overflowX="auto" p={2}>
-                          <SyntaxHighlighter
-                            language={language}
-                            PreTag="div" // Prevents double <pre> nesting
-                            showLineNumbers
-                            style={style}
-                            wrapLongLines
-                          >
-                            {renderedValue}
-                          </SyntaxHighlighter>
-                        </Box>
+                    <Box
+                      css={{
+                        "&:hover .copy-button": {
+                          opacity: 1,
+                        },
+                      }}
+                    >
+                      <Box as="pre" borderRadius="md" fontSize="sm" m={0} 
overflowX="auto" p={2}>
+                        <SyntaxHighlighter
+                          language={language}
+                          PreTag="div" // Prevents double <pre> nesting
+                          showLineNumbers
+                          style={style}
+                          wrapLongLines
+                        >
+                          {renderedValue}
+                        </SyntaxHighlighter>
                       </Box>
-                      <ClipboardRoot value={renderedValue}>
+                      <ClipboardRoot
+                        className="copy-button"
+                        float="right"
+                        marginTop="-3.5rem"
+                        opacity={0}
+                        position="sticky"
+                        right={4}
+                        transition="opacity 0.2s ease-in-out"
+                        value={renderedValue}
+                      >
                         <ClipboardIconButton />
                       </ClipboardRoot>
-                    </HStack>
+                    </Box>
                   </Table.Cell>
                 </Table.Row>
               );

Reply via email to