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

adoroszlai pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git


The following commit(s) were added to refs/heads/master by this push:
     new 39a234752b1 HDDS-14823. Make PipelineID column sticky on Pipeline Tab 
(#9910)
39a234752b1 is described below

commit 39a234752b19a8fffadb69ff622888cb611658c1
Author: Arun Sarin <[email protected]>
AuthorDate: Sun Mar 15 00:43:22 2026 +0530

    HDDS-14823. Make PipelineID column sticky on Pipeline Tab (#9910)
---
 .../src/v2/components/select/multiSelect.tsx           | 18 ++++++++++++------
 .../src/v2/components/tables/pipelinesTable.tsx        |  2 +-
 .../src/v2/constants/select.constants.tsx              |  4 ++++
 3 files changed, 17 insertions(+), 7 deletions(-)

diff --git 
a/hadoop-ozone/recon/src/main/resources/webapps/recon/ozone-recon-web/src/v2/components/select/multiSelect.tsx
 
b/hadoop-ozone/recon/src/main/resources/webapps/recon/ozone-recon-web/src/v2/components/select/multiSelect.tsx
index 03dd12b5698..400b2d3c290 100644
--- 
a/hadoop-ozone/recon/src/main/resources/webapps/recon/ozone-recon-web/src/v2/components/select/multiSelect.tsx
+++ 
b/hadoop-ozone/recon/src/main/resources/webapps/recon/ozone-recon-web/src/v2/components/select/multiSelect.tsx
@@ -97,14 +97,17 @@ const MultiSelect: React.FC<MultiSelectProps> = ({
         )}
         {isDisabled
           ? placeholder
-          : `${placeholder}: ${selected.length} selected`
-}
+          : `${placeholder}: ${selected.filter((opt) => opt.value !== 
fixedColumn).length} selected`
+        }
       </components.ValueContainer>
     );
   };
 
   const finalStyles = {...selectStyles, ...style ?? {}}
 
+  const fixedOption = fixedColumn ? options.find((opt) => opt.value === 
fixedColumn) : undefined;
+  const selectableOptions = fixedColumn ? options.filter((opt) => opt.value 
!== fixedColumn) : options;
+
   return (
     <ReactSelect
       {...props}
@@ -115,17 +118,20 @@ const MultiSelect: React.FC<MultiSelectProps> = ({
       isSearchable={false}
       controlShouldRenderValue={false}
       classNamePrefix='multi-select'
-      options={options.map((opt) => ({...opt, isDisabled: (opt.value === 
fixedColumn)}))}
+      options={selectableOptions}
       components={{
         ValueContainer,
         Option
       }}
+      menuPortalTarget={document.body}
       placeholder={placeholder}
-      value={selected}
+      value={selected.filter((opt) => opt.value !== fixedColumn)}
       isDisabled={isDisabled}
       onChange={(selected: ValueType<Option, true>) => {
-        if (selected?.length === options.length) return onChange!(options);
-        return onChange!(selected);
+        const selectedOpts = (selected as Option[]) ?? [];
+        const withFixed = fixedOption ? [fixedOption, ...selectedOpts] : 
selectedOpts;
+        if (selectedOpts.length === selectableOptions.length) return 
onChange!(options);
+        return onChange!(withFixed);
       }}
       styles={finalStyles} />
   )
diff --git 
a/hadoop-ozone/recon/src/main/resources/webapps/recon/ozone-recon-web/src/v2/components/tables/pipelinesTable.tsx
 
b/hadoop-ozone/recon/src/main/resources/webapps/recon/ozone-recon-web/src/v2/components/tables/pipelinesTable.tsx
index 9d0a8704a1e..92c1e424400 100644
--- 
a/hadoop-ozone/recon/src/main/resources/webapps/recon/ozone-recon-web/src/v2/components/tables/pipelinesTable.tsx
+++ 
b/hadoop-ozone/recon/src/main/resources/webapps/recon/ozone-recon-web/src/v2/components/tables/pipelinesTable.tsx
@@ -64,8 +64,8 @@ export const COLUMNS: ColumnsType<Pipeline> = [
     title: 'Pipeline ID',
     dataIndex: 'pipelineId',
     key: 'pipelineId',
+    fixed: 'left',
     sorter: (a: Pipeline, b: Pipeline) => 
a.pipelineId.localeCompare(b.pipelineId),
-
   },
   {
     title: 'Replication Type & Factor',
diff --git 
a/hadoop-ozone/recon/src/main/resources/webapps/recon/ozone-recon-web/src/v2/constants/select.constants.tsx
 
b/hadoop-ozone/recon/src/main/resources/webapps/recon/ozone-recon-web/src/v2/constants/select.constants.tsx
index 465c2533bc2..6b434ac8e87 100644
--- 
a/hadoop-ozone/recon/src/main/resources/webapps/recon/ozone-recon-web/src/v2/constants/select.constants.tsx
+++ 
b/hadoop-ozone/recon/src/main/resources/webapps/recon/ozone-recon-web/src/v2/constants/select.constants.tsx
@@ -58,5 +58,9 @@ export const selectStyles: StylesConfig<Option, true> = {
   }),
   indicatorSeparator: () => ({
     display: 'none'
+  }),
+  menuPortal: (baseStyles) => ({
+    ...baseStyles,
+    zIndex: 9999
   })
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to