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>
