Skip to content

Commit

Permalink
feat: [v6] Retire deprecated api for slider (ant-design#52369)
Browse files Browse the repository at this point in the history
* feat: [v6] Retire deprecated api for slider

* feat: [v6] Retire deprecated api for slider
  • Loading branch information
kiner-tang authored Jan 13, 2025
1 parent ff3bee9 commit 5669073
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 97 deletions.
61 changes: 0 additions & 61 deletions components/slider/__tests__/index.test.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import React from 'react';

import Slider from '..';
import { resetWarned } from '../../_util/warning';
import focusTest from '../../../tests/shared/focusTest';
import mountTest from '../../../tests/shared/mountTest';
import rtlTest from '../../../tests/shared/rtlTest';
Expand Down Expand Up @@ -164,67 +163,7 @@ describe('Slider', () => {
render(<Slider step={value} tooltip={{ open: true }} />);
});
});
it('deprecated warning', () => {
resetWarned();

const TSSlider = Slider as any;

const errSpy = jest.spyOn(console, 'error').mockImplementation(() => {});

const { container, rerender } = render(<TSSlider tooltipPrefixCls="xxx" />);
expect(errSpy).toHaveBeenCalledWith(
'Warning: [antd: Slider] `tooltipPrefixCls` is deprecated. Please use `tooltip.prefixCls` instead.',
);

rerender(<TSSlider getTooltipPopupContainer={() => document.body} />);
expect(errSpy).toHaveBeenCalledWith(
'Warning: [antd: Slider] `getTooltipPopupContainer` is deprecated. Please use `tooltip.getPopupContainer` instead.',
);

rerender(<TSSlider tipFormatter={(v: any) => v} />);
expect(errSpy).toHaveBeenCalledWith(
'Warning: [antd: Slider] `tipFormatter` is deprecated. Please use `tooltip.formatter` instead.',
);

rerender(<TSSlider tooltipVisible />);
expect(errSpy).toHaveBeenCalledWith(
'Warning: [antd: Slider] `tooltipVisible` is deprecated. Please use `tooltip.open` instead.',
);

rerender(<TSSlider tooltipPlacement="left" />);
expect(errSpy).toHaveBeenCalledWith(
'Warning: [antd: Slider] `tooltipPlacement` is deprecated. Please use `tooltip.placement` instead.',
);

// All should work
const holder = document.createElement('div');
holder.id = 'holder';
document.body.appendChild(holder);

const getTooltipPopupContainer = jest.fn(() => container);

rerender(
<TSSlider
tooltipPrefixCls="bamboo"
getTooltipPopupContainer={getTooltipPopupContainer}
tipFormatter={() => 'little'}
tooltipPlacement="bottom"
tooltipVisible
/>,
);

act(() => {
jest.runAllTimers();
});

expect(getTooltipPopupContainer).toHaveBeenCalled();
expect(container.querySelector('.bamboo')).toBeTruthy();
expect(container.querySelector('.bamboo-inner')!.textContent).toEqual('little');

holder.parentNode?.removeChild(holder);

errSpy.mockRestore();
});
it('should apply custom styles to Descriptions', () => {
const customClassNames = {
root: 'custom-root',
Expand Down
45 changes: 9 additions & 36 deletions components/slider/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -71,21 +71,6 @@ export interface SliderBaseProps {
classNames?: SliderProps['classNames'];
onFocus?: React.FocusEventHandler<HTMLDivElement>;
onBlur?: React.FocusEventHandler<HTMLDivElement>;

// Deprecated
/** @deprecated `tooltipPrefixCls` is deprecated. Please use `tooltip.prefixCls` instead. */
tooltipPrefixCls?: string;
/** @deprecated `tipFormatter` is deprecated. Please use `tooltip.formatter` instead. */
tipFormatter?: Formatter;
/** @deprecated `tooltipVisible` is deprecated. Please use `tooltip.open` instead. */
tooltipVisible?: boolean;
/**
* @deprecated `getTooltipPopupContainer` is deprecated. Please use `tooltip.getPopupContainer`
* instead.
*/
getTooltipPopupContainer?: (triggerNode: HTMLElement) => HTMLElement;
/** @deprecated `tooltipPlacement` is deprecated. Please use `tooltip.placement` instead. */
tooltipPlacement?: TooltipPlacement;
}

export interface SliderSingleProps extends SliderBaseProps {
Expand Down Expand Up @@ -124,13 +109,10 @@ type SliderRange = Exclude<GetProp<RcSliderProps, 'range'>, boolean>;

export type Opens = { [index: number]: boolean };

function getTipFormatter(tipFormatter?: Formatter, legacyTipFormatter?: Formatter) {
function getTipFormatter(tipFormatter?: Formatter) {
if (tipFormatter || tipFormatter === null) {
return tipFormatter;
}
if (legacyTipFormatter || legacyTipFormatter === null) {
return legacyTipFormatter;
}
return (val?: number) => (typeof val === 'number' ? val.toString() : '');
}

Expand All @@ -143,11 +125,6 @@ const Slider = React.forwardRef<SliderRef, SliderSingleProps | SliderRangeProps>
style,
disabled,
// Deprecated Props
tooltipPrefixCls: legacyTooltipPrefixCls,
tipFormatter: legacyTipFormatter,
tooltipVisible: legacyTooltipVisible,
getTooltipPopupContainer: legacyGetTooltipPopupContainer,
tooltipPlacement: legacyTooltipPlacement,
tooltip = {},
onChangeComplete,
classNames: sliderClassNames,
Expand Down Expand Up @@ -188,10 +165,10 @@ const Slider = React.forwardRef<SliderRef, SliderSingleProps | SliderRangeProps>
formatter: tipFormatter,
} = tooltipProps;

const lockOpen = tooltipOpen ?? legacyTooltipVisible;
const lockOpen = tooltipOpen;
const activeOpen = (hoverOpen || focusOpen) && lockOpen !== false;

const mergedTipFormatter = getTipFormatter(tipFormatter, legacyTipFormatter);
const mergedTipFormatter = getTipFormatter(tipFormatter);

// ============================= Change ==============================
const [dragging, setDragging] = useRafLock();
Expand Down Expand Up @@ -326,15 +303,13 @@ const Slider = React.forwardRef<SliderRef, SliderSingleProps | SliderRangeProps>
return (
<SliderTooltip
{...tooltipProps}
prefixCls={getPrefixCls('tooltip', customizeTooltipPrefixCls ?? legacyTooltipPrefixCls)}
prefixCls={getPrefixCls('tooltip', customizeTooltipPrefixCls)}
title={mergedTipFormatter ? mergedTipFormatter(info.value) : ''}
open={open}
placement={getTooltipPlacement(tooltipPlacement ?? legacyTooltipPlacement, vertical)}
placement={getTooltipPlacement(tooltipPlacement, vertical)}
key={index}
classNames={{ root: `${prefixCls}-tooltip` }}
getPopupContainer={
getTooltipPopupContainer || legacyGetTooltipPopupContainer || getPopupContainer
}
getPopupContainer={getTooltipPopupContainer || getPopupContainer}
>
{cloneNode}
</SliderTooltip>
Expand All @@ -357,15 +332,13 @@ const Slider = React.forwardRef<SliderRef, SliderSingleProps | SliderRangeProps>
return (
<SliderTooltip
{...tooltipProps}
prefixCls={getPrefixCls('tooltip', customizeTooltipPrefixCls ?? legacyTooltipPrefixCls)}
prefixCls={getPrefixCls('tooltip', customizeTooltipPrefixCls)}
title={mergedTipFormatter ? mergedTipFormatter(info.value) : ''}
open={mergedTipFormatter !== null && activeOpen}
placement={getTooltipPlacement(tooltipPlacement ?? legacyTooltipPlacement, vertical)}
placement={getTooltipPlacement(tooltipPlacement, vertical)}
key="tooltip"
classNames={{ root: `${prefixCls}-tooltip` }}
getPopupContainer={
getTooltipPopupContainer || legacyGetTooltipPopupContainer || getPopupContainer
}
getPopupContainer={getTooltipPopupContainer || getPopupContainer}
draggingDelete={info.draggingDelete}
>
{cloneNode}
Expand Down

0 comments on commit 5669073

Please sign in to comment.