Skip to content

Commit b4315ed

Browse files
authored
refactor: deprecate some api and add test case (#581)
1 parent 345ef03 commit b4315ed

File tree

4 files changed

+19
-5
lines changed

4 files changed

+19
-5
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ lib
2626
es
2727
yarn.lock
2828
package-lock.json
29+
pnpm-lock.yaml
2930
coverage
3031
# umi
3132
.umi

src/Cascader.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,9 +112,11 @@ interface BaseCascaderProps<
112112
placement?: Placement;
113113
builtinPlacements?: BuildInPlacements;
114114

115-
/** @deprecated Use `onDropdownVisibleChange` instead */
115+
/** @deprecated Use `onOpenChange` instead */
116116
onPopupVisibleChange?: (open: boolean) => void;
117+
/** @deprecated Use `onOpenChange` instead */
117118
onDropdownVisibleChange?: (open: boolean) => void;
119+
onOpenChange?: (open: boolean) => void;
118120

119121
// Icon
120122
expandIcon?: React.ReactNode;
@@ -227,6 +229,7 @@ const Cascader = React.forwardRef<CascaderRef, InternalCascaderProps>((props, re
227229

228230
onDropdownVisibleChange,
229231
onPopupVisibleChange,
232+
onOpenChange,
230233

231234
// Icon
232235
expandIcon = '>',
@@ -384,6 +387,7 @@ const Cascader = React.forwardRef<CascaderRef, InternalCascaderProps>((props, re
384387
const mergedPlacement = placement || popupPlacement;
385388

386389
const onInternalDropdownVisibleChange = (nextVisible: boolean) => {
390+
onOpenChange?.(nextVisible)
387391
onDropdownVisibleChange?.(nextVisible);
388392
onPopupVisibleChange?.(nextVisible);
389393
};

src/utils/warningPropsUtil.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,15 @@ import warning from 'rc-util/lib/warning';
22
import type { DefaultOptionType, FieldNames, InternalCascaderProps } from '../Cascader';
33

44
function warningProps(props: InternalCascaderProps) {
5-
const { onPopupVisibleChange, popupVisible, popupClassName, popupPlacement } = props;
5+
const { onPopupVisibleChange, popupVisible, popupClassName, popupPlacement, onDropdownVisibleChange } = props;
66

77
warning(
88
!onPopupVisibleChange,
9-
'`onPopupVisibleChange` is deprecated. Please use `onDropdownVisibleChange` instead.',
9+
'`onPopupVisibleChange` is deprecated. Please use `onOpenChange` instead.',
10+
);
11+
warning(
12+
!onDropdownVisibleChange,
13+
'`onDropdownVisibleChange` is deprecated. Please use `onOpenChange` instead.',
1014
);
1115
warning(popupVisible === undefined, '`popupVisible` is deprecated. Please use `open` instead.');
1216
warning(

tests/index.spec.tsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -514,21 +514,26 @@ describe('Cascader.Basic', () => {
514514
expect(wrapper.isOpen()).toBeTruthy();
515515
});
516516

517-
it('warning popupVisible & onPopupVisibleChange & popupClassName', () => {
517+
it('warning popupVisible & onPopupVisibleChange & onDropdownVisibleChange & popupClassName & popupPlacement', () => {
518518
resetWarned();
519519
const errorSpy = jest.spyOn(console, 'error').mockImplementation(() => {});
520520
const onPopupVisibleChange = jest.fn();
521+
const onDropdownVisibleChange = jest.fn();
521522
const wrapper = mount(
522523
<Cascader
523524
popupVisible
524525
onPopupVisibleChange={onPopupVisibleChange}
526+
onDropdownVisibleChange={onDropdownVisibleChange}
525527
popupClassName="legacy-cls"
526528
popupPlacement="topRight"
527529
/>,
528530
);
529531

530532
expect(errorSpy).toHaveBeenCalledWith(
531-
'Warning: `onPopupVisibleChange` is deprecated. Please use `onDropdownVisibleChange` instead.',
533+
'Warning: `onPopupVisibleChange` is deprecated. Please use `onOpenChange` instead.',
534+
);
535+
expect(errorSpy).toHaveBeenCalledWith(
536+
'Warning: `onDropdownVisibleChange` is deprecated. Please use `onOpenChange` instead.',
532537
);
533538
expect(errorSpy).toHaveBeenCalledWith(
534539
'Warning: `popupVisible` is deprecated. Please use `open` instead.',

0 commit comments

Comments
 (0)