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

pierrejeambrun pushed a commit to branch v3-0-test
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/v3-0-test by this push:
     new 221e17bea13 Unmount dialog & add onOpen (#53307) (#54025)
221e17bea13 is described below

commit 221e17bea139ce1354805795222f7747881164f4
Author: Pierre Jeambrun <[email protected]>
AuthorDate: Fri Aug 1 17:52:02 2025 +0200

    Unmount dialog & add onOpen (#53307) (#54025)
    
    (cherry picked from commit bb87ad5da725c530be06fc2bcf13c3c9d579496a)
    
    Co-authored-by: Wei-Yu Chen <[email protected]>
---
 .../src/airflow/ui/src/components/EditableMarkdownButton.tsx   | 10 +++++++++-
 airflow-core/src/airflow/ui/src/pages/Run/Header.tsx           |  6 ++++++
 airflow-core/src/airflow/ui/src/pages/TaskInstance/Header.tsx  |  5 +++++
 3 files changed, 20 insertions(+), 1 deletion(-)

diff --git 
a/airflow-core/src/airflow/ui/src/components/EditableMarkdownButton.tsx 
b/airflow-core/src/airflow/ui/src/components/EditableMarkdownButton.tsx
index ca9e5ab9485..6ce5fa80b84 100644
--- a/airflow-core/src/airflow/ui/src/components/EditableMarkdownButton.tsx
+++ b/airflow-core/src/airflow/ui/src/components/EditableMarkdownButton.tsx
@@ -30,6 +30,7 @@ const EditableMarkdownButton = ({
   isPending,
   mdContent,
   onConfirm,
+  onOpen,
   placeholder,
   setMdContent,
   text,
@@ -40,6 +41,7 @@ const EditableMarkdownButton = ({
   readonly isPending: boolean;
   readonly mdContent?: string | null;
   readonly onConfirm: () => void;
+  readonly onOpen: () => void;
   readonly placeholder: string;
   readonly setMdContent: (value: string) => void;
   readonly text: string;
@@ -52,7 +54,12 @@ const EditableMarkdownButton = ({
       <ActionButton
         actionName={placeholder}
         icon={icon}
-        onClick={() => setIsOpen(true)}
+        onClick={() => {
+          if (!isOpen) {
+            onOpen();
+          }
+          setIsOpen(true);
+        }}
         text={text}
         withText={withText}
       />
@@ -62,6 +69,7 @@ const EditableMarkdownButton = ({
         onOpenChange={() => setIsOpen(false)}
         open={isOpen}
         size="md"
+        unmountOnExit={true}
       >
         <Dialog.Content backdrop>
           <Dialog.Header bg="blue.muted">
diff --git a/airflow-core/src/airflow/ui/src/pages/Run/Header.tsx 
b/airflow-core/src/airflow/ui/src/pages/Run/Header.tsx
index d5bd8d7a655..5e521f21e19 100644
--- a/airflow-core/src/airflow/ui/src/pages/Run/Header.tsx
+++ b/airflow-core/src/airflow/ui/src/pages/Run/Header.tsx
@@ -58,6 +58,11 @@ export const Header = ({
       });
     }
   }, [dagId, dagRun.note, dagRunId, mutate, note]);
+
+  const onOpen = () => {
+    setNote(dagRun.note ?? "");
+  };
+
   const containerRef = useRef<HTMLDivElement>();
   const containerWidth = useContainerWidth(containerRef);
 
@@ -72,6 +77,7 @@ export const Header = ({
               isPending={isPending}
               mdContent={note}
               onConfirm={onConfirm}
+              onOpen={onOpen}
               placeholder="Add a note..."
               setMdContent={setNote}
               text={Boolean(dagRun.note) ? "Note" : "Add a note"}
diff --git a/airflow-core/src/airflow/ui/src/pages/TaskInstance/Header.tsx 
b/airflow-core/src/airflow/ui/src/pages/TaskInstance/Header.tsx
index 40c35319b8f..61f86c2e7a1 100644
--- a/airflow-core/src/airflow/ui/src/pages/TaskInstance/Header.tsx
+++ b/airflow-core/src/airflow/ui/src/pages/TaskInstance/Header.tsx
@@ -82,6 +82,10 @@ export const Header = ({
     }
   }, [dagId, dagRunId, mapIndex, mutate, note, taskId, taskInstance.note]);
 
+  const onOpen = () => {
+    setNote(taskInstance.note ?? "");
+  };
+
   return (
     <Box ref={containerRef}>
       <HeaderCard
@@ -93,6 +97,7 @@ export const Header = ({
               isPending={isPending}
               mdContent={note}
               onConfirm={onConfirm}
+              onOpen={onOpen}
               placeholder="Add a note..."
               setMdContent={setNote}
               text={Boolean(taskInstance.note) ? "Note" : "Add a note"}

Reply via email to