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

rusackas pushed a commit to branch fix/console-noise-cleanup
in repository https://gitbox.apache.org/repos/asf/superset.git

commit 2360d1ec07a6297686ee3748d822f8e4fd9f86a2
Author: Evan Rusackas <[email protected]>
AuthorDate: Tue Feb 10 23:04:55 2026 -0800

    fix(frontend): address more console warnings
    
    SQL Lab:
    - Fix $empty prop leak to DOM using shouldForwardProp (DatabaseSelector)
    - Wrap Icons in span for Tooltip ref forwarding (TabbedSqlEditors)
    
    Explore view:
    - Rename destroyTooltipOnHide to destroyOnHidden (antd deprecation)
    - Add missing key prop to DndAdhocFilterOption list items
    - Wrap Button in span for Dropdown ref forwarding (PageHeaderWithActions)
    
    Co-Authored-By: Claude Opus 4.5 <[email protected]>
---
 .../src/components/PageHeaderWithActions/index.tsx | 28 ++++++++++++----------
 .../SqlLab/components/TabbedSqlEditors/index.tsx   | 18 +++++++-------
 .../src/components/DatabaseSelector/index.tsx      | 10 ++++----
 .../controls/AnnotationLayerControl/index.tsx      |  2 +-
 .../ConditionalFormattingControl.tsx               |  4 ++--
 .../ContourControl/ContourPopoverTrigger.tsx       |  2 +-
 .../ControlPopover/ControlPopover.test.tsx         |  4 ++--
 .../controls/ControlPopover/ControlPopover.tsx     |  4 ++--
 .../controls/DateFilterControl/DateFilterLabel.tsx |  2 +-
 .../ColumnSelectPopoverTrigger.tsx                 |  2 +-
 .../DndColumnSelectControl/DndFilterSelect.tsx     |  1 +
 .../AdhocFilterPopoverTrigger/index.tsx            |  2 +-
 .../MetricControl/AdhocMetricPopoverTrigger.tsx    |  2 +-
 13 files changed, 44 insertions(+), 37 deletions(-)

diff --git 
a/superset-frontend/packages/superset-ui-core/src/components/PageHeaderWithActions/index.tsx
 
b/superset-frontend/packages/superset-ui-core/src/components/PageHeaderWithActions/index.tsx
index 469d9598f99..9a0cb9c2207 100644
--- 
a/superset-frontend/packages/superset-ui-core/src/components/PageHeaderWithActions/index.tsx
+++ 
b/superset-frontend/packages/superset-ui-core/src/components/PageHeaderWithActions/index.tsx
@@ -155,19 +155,21 @@ export const PageHeaderWithActions = ({
               popupRender={() => additionalActionsMenu}
               {...menuDropdownProps}
             >
-              <Button
-                css={menuTriggerStyles}
-                buttonStyle="tertiary"
-                aria-label={t('Menu actions trigger')}
-                tooltip={tooltipProps?.text}
-                placement={tooltipProps?.placement}
-                data-test="actions-trigger"
-              >
-                <Icons.EllipsisOutlined
-                  iconColor={theme.colorPrimary}
-                  iconSize="l"
-                />
-              </Button>
+              <span>
+                <Button
+                  css={menuTriggerStyles}
+                  buttonStyle="tertiary"
+                  aria-label={t('Menu actions trigger')}
+                  tooltip={tooltipProps?.text}
+                  placement={tooltipProps?.placement}
+                  data-test="actions-trigger"
+                >
+                  <Icons.EllipsisOutlined
+                    iconColor={theme.colorPrimary}
+                    iconSize="l"
+                  />
+                </Button>
+              </span>
             </Dropdown>
           )}
         </div>
diff --git a/superset-frontend/src/SqlLab/components/TabbedSqlEditors/index.tsx 
b/superset-frontend/src/SqlLab/components/TabbedSqlEditors/index.tsx
index 83c870e1233..5bcd6a24b43 100644
--- a/superset-frontend/src/SqlLab/components/TabbedSqlEditors/index.tsx
+++ b/superset-frontend/src/SqlLab/components/TabbedSqlEditors/index.tsx
@@ -194,13 +194,14 @@ class TabbedSqlEditors extends 
PureComponent<TabbedSqlEditorsProps> {
               : t('New tab (Ctrl + t)')
           }
         >
-          <Icons.PlusCircleOutlined
-            iconSize="s"
+          <span
             css={css`
+              display: inline-flex;
               vertical-align: middle;
             `}
-            data-test="add-tab-icon"
-          />
+          >
+            <Icons.PlusCircleOutlined iconSize="s" data-test="add-tab-icon" />
+          </span>
         </Tooltip>
       </StyledTab>
     );
@@ -241,13 +242,14 @@ class TabbedSqlEditors extends 
PureComponent<TabbedSqlEditorsProps> {
                 : t('New tab (Ctrl + t)')
             }
           >
-            <Icons.PlusOutlined
-              iconSize="l"
+            <span
               css={css`
+                display: inline-flex;
                 vertical-align: middle;
               `}
-              data-test="add-tab-icon"
-            />
+            >
+              <Icons.PlusOutlined iconSize="l" data-test="add-tab-icon" />
+            </span>
           </Tooltip>
         }
         items={tabItems}
diff --git a/superset-frontend/src/components/DatabaseSelector/index.tsx 
b/superset-frontend/src/components/DatabaseSelector/index.tsx
index 6660bf83639..10efda262be 100644
--- a/superset-frontend/src/components/DatabaseSelector/index.tsx
+++ b/superset-frontend/src/components/DatabaseSelector/index.tsx
@@ -139,9 +139,11 @@ const LabelStyle = styled.div`
   }
 `;
 
-const SelectButton = styled(Button)<{ empty: boolean }>`
-  color: ${({ theme, empty }) =>
-    empty ? theme.colorTextPlaceholder : theme.colorTextBase};
+const SelectButton = styled(Button, {
+  shouldForwardProp: prop => prop !== '$empty',
+})<{ $empty: boolean }>`
+  color: ${({ theme, $empty }) =>
+    $empty ? theme.colorTextPlaceholder : theme.colorTextBase};
 `;
 
 export const SelectLabel = ({
@@ -410,7 +412,7 @@ export function DatabaseSelector({
             buttonStyle="tertiary"
             disabled={sqlLabModeConfig.disabled}
             loading={sqlLabModeConfig.loading}
-            empty={!sqlLabModeConfig.displayValue}
+            $empty={!sqlLabModeConfig.displayValue}
           >
             {displayValue}
           </SelectButton>
diff --git 
a/superset-frontend/src/explore/components/controls/AnnotationLayerControl/index.tsx
 
b/superset-frontend/src/explore/components/controls/AnnotationLayerControl/index.tsx
index 03e08ba44b4..127731ea283 100644
--- 
a/superset-frontend/src/explore/components/controls/AnnotationLayerControl/index.tsx
+++ 
b/superset-frontend/src/explore/components/controls/AnnotationLayerControl/index.tsx
@@ -257,7 +257,7 @@ class AnnotationLayerControl extends PureComponent<Props, 
PopoverState> {
             )}
             title={t('Add annotation layer')}
             open={this.state.popoverVisible[addLayerPopoverKey]}
-            destroyTooltipOnHide
+            destroyOnHidden
             onOpenChange={visible =>
               this.handleVisibleChange(visible, addLayerPopoverKey)
             }
diff --git 
a/superset-frontend/src/explore/components/controls/ConditionalFormattingControl/ConditionalFormattingControl.tsx
 
b/superset-frontend/src/explore/components/controls/ConditionalFormattingControl/ConditionalFormattingControl.tsx
index 54adad53514..a80c1f78f7f 100644
--- 
a/superset-frontend/src/explore/components/controls/ConditionalFormattingControl/ConditionalFormattingControl.tsx
+++ 
b/superset-frontend/src/explore/components/controls/ConditionalFormattingControl/ConditionalFormattingControl.tsx
@@ -157,7 +157,7 @@ const ConditionalFormattingControl = ({
               onChange={(newConfig: ConditionalFormattingConfig) =>
                 onEdit(newConfig, index)
               }
-              destroyTooltipOnHide
+              destroyOnHidden
               extraColorChoices={extraColorChoices}
             >
               <OptionControlContainer withCaret>
@@ -173,7 +173,7 @@ const ConditionalFormattingControl = ({
           title={t('Add new formatter')}
           columns={columnOptions}
           onChange={onSave}
-          destroyTooltipOnHide
+          destroyOnHidden
           extraColorChoices={extraColorChoices}
           conditionalFormattingFlag={conditionalFormattingFlag}
         >
diff --git 
a/superset-frontend/src/explore/components/controls/ContourControl/ContourPopoverTrigger.tsx
 
b/superset-frontend/src/explore/components/controls/ContourControl/ContourPopoverTrigger.tsx
index 315a34e7985..69e4b90fefe 100644
--- 
a/superset-frontend/src/explore/components/controls/ContourControl/ContourPopoverTrigger.tsx
+++ 
b/superset-frontend/src/explore/components/controls/ContourControl/ContourPopoverTrigger.tsx
@@ -50,7 +50,7 @@ const ContourPopoverTrigger = ({
       defaultOpen={visible}
       open={visible}
       onOpenChange={setVisibility}
-      destroyTooltipOnHide
+      destroyOnHidden
     >
       {props.children}
     </ControlPopover>
diff --git 
a/superset-frontend/src/explore/components/controls/ControlPopover/ControlPopover.test.tsx
 
b/superset-frontend/src/explore/components/controls/ControlPopover/ControlPopover.test.tsx
index 49e3551949e..fcb9d07d741 100644
--- 
a/superset-frontend/src/explore/components/controls/ControlPopover/ControlPopover.test.tsx
+++ 
b/superset-frontend/src/explore/components/controls/ControlPopover/ControlPopover.test.tsx
@@ -134,7 +134,7 @@ test('Should place popover at the bottom', async () => {
 test('Should close popover on escape press', async () => {
   setupTest({
     ...createProps(),
-    destroyTooltipOnHide: true,
+    destroyOnHidden: true,
   });
 
   expect(screen.getByTestId('control-popover')).toBeInTheDocument();
@@ -165,7 +165,7 @@ test('Should close popover on escape press', async () => {
 test('Controlled mode', async () => {
   const baseProps = {
     ...createProps(),
-    destroyTooltipOnHide: true,
+    destroyOnHidden: true,
     open: false,
   };
 
diff --git 
a/superset-frontend/src/explore/components/controls/ControlPopover/ControlPopover.tsx
 
b/superset-frontend/src/explore/components/controls/ControlPopover/ControlPopover.tsx
index 6837e350d5b..301266bd859 100644
--- 
a/superset-frontend/src/explore/components/controls/ControlPopover/ControlPopover.tsx
+++ 
b/superset-frontend/src/explore/components/controls/ControlPopover/ControlPopover.tsx
@@ -52,7 +52,7 @@ const ControlPopover: FC<PopoverProps> = ({
   getPopupContainer,
   getVisibilityRatio = getElementVisibilityRatio,
   open: visibleProp,
-  destroyTooltipOnHide = false,
+  destroyOnHidden = false,
   placement: initialPlacement = 'right',
   ...props
 }) => {
@@ -200,7 +200,7 @@ const ControlPopover: FC<PopoverProps> = ({
       placement={placement}
       onOpenChange={handleOnVisibleChange}
       getPopupContainer={handleGetPopupContainer}
-      destroyTooltipOnHide={destroyTooltipOnHide}
+      destroyOnHidden={destroyOnHidden}
       afterOpenChange={handleAfterOpenChange}
     />
   );
diff --git 
a/superset-frontend/src/explore/components/controls/DateFilterControl/DateFilterLabel.tsx
 
b/superset-frontend/src/explore/components/controls/DateFilterControl/DateFilterLabel.tsx
index b35530b0295..b35ef8cd675 100644
--- 
a/superset-frontend/src/explore/components/controls/DateFilterControl/DateFilterLabel.tsx
+++ 
b/superset-frontend/src/explore/components/controls/DateFilterControl/DateFilterLabel.tsx
@@ -355,7 +355,7 @@ export default function DateFilterLabel(props: 
DateFilterControlProps) {
       open={show}
       onOpenChange={toggleOverlay}
       overlayStyle={{ width: '600px' }}
-      destroyTooltipOnHide
+      destroyOnHidden
       getPopupContainer={nodeTrigger =>
         isOverflowingFilterBar
           ? (nodeTrigger.parentNode as HTMLElement)
diff --git 
a/superset-frontend/src/explore/components/controls/DndColumnSelectControl/ColumnSelectPopoverTrigger.tsx
 
b/superset-frontend/src/explore/components/controls/DndColumnSelectControl/ColumnSelectPopoverTrigger.tsx
index 5509eae785b..47d19fa1407 100644
--- 
a/superset-frontend/src/explore/components/controls/DndColumnSelectControl/ColumnSelectPopoverTrigger.tsx
+++ 
b/superset-frontend/src/explore/components/controls/DndColumnSelectControl/ColumnSelectPopoverTrigger.tsx
@@ -209,7 +209,7 @@ const ColumnSelectPopoverTriggerInner = ({
         open={visible}
         onOpenChange={handleTogglePopover}
         title={popoverTitle}
-        destroyTooltipOnHide
+        destroyOnHidden
       >
         {children}
       </ControlPopover>
diff --git 
a/superset-frontend/src/explore/components/controls/DndColumnSelectControl/DndFilterSelect.tsx
 
b/superset-frontend/src/explore/components/controls/DndColumnSelectControl/DndFilterSelect.tsx
index 9b1a9a371df..b80de9c3439 100644
--- 
a/superset-frontend/src/explore/components/controls/DndColumnSelectControl/DndFilterSelect.tsx
+++ 
b/superset-frontend/src/explore/components/controls/DndColumnSelectControl/DndFilterSelect.tsx
@@ -356,6 +356,7 @@ const DndFilterSelect = (props: DndFilterSelectProps) => {
     () =>
       values.map((adhocFilter: AdhocFilter, index: number) => (
         <DndAdhocFilterOption
+          key={adhocFilter.filterOptionName ?? index}
           index={index}
           adhocFilter={adhocFilter}
           options={options}
diff --git 
a/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterPopoverTrigger/index.tsx
 
b/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterPopoverTrigger/index.tsx
index 115fb9449a7..df4a845ef2f 100644
--- 
a/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterPopoverTrigger/index.tsx
+++ 
b/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterPopoverTrigger/index.tsx
@@ -109,7 +109,7 @@ class AdhocFilterPopoverTrigger extends PureComponent<
         defaultOpen={visible}
         open={visible}
         onOpenChange={togglePopover}
-        destroyTooltipOnHide
+        destroyOnHidden
       >
         {this.props.children}
       </ControlPopover>
diff --git 
a/superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricPopoverTrigger.tsx
 
b/superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricPopoverTrigger.tsx
index b4f8e580974..3d02b4b329f 100644
--- 
a/superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricPopoverTrigger.tsx
+++ 
b/superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricPopoverTrigger.tsx
@@ -272,7 +272,7 @@ class AdhocMetricPopoverTrigger extends PureComponent<
           open={visible}
           onOpenChange={togglePopover}
           title={popoverTitle}
-          destroyTooltipOnHide
+          destroyOnHidden
         >
           {this.props.children}
         </ControlPopover>

Reply via email to