Skip to content

Commit 252a8e8

Browse files
committed
chore: compatible with legacy
1 parent 9601b4a commit 252a8e8

File tree

2 files changed

+17
-2
lines changed

2 files changed

+17
-2
lines changed

src/index.tsx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,10 @@ export interface TriggerProps {
6363
popupVisible?: boolean;
6464
defaultPopupVisible?: boolean;
6565
onOpenChange?: (visible: boolean) => void;
66+
afterOpenChange?: (visible: boolean) => void;
67+
/** @deprecated Use `onOpenChange` instead */
68+
onPopupVisibleChange?: (visible: boolean) => void;
69+
/** @deprecated Use `afterOpenChange` instead */
6670
afterPopupVisibleChange?: (visible: boolean) => void;
6771

6872
// =================== Portal ====================
@@ -139,6 +143,8 @@ export function generateTrigger(
139143
popupVisible,
140144
defaultPopupVisible,
141145
onOpenChange,
146+
afterOpenChange,
147+
onPopupVisibleChange,
142148
afterPopupVisibleChange,
143149

144150
// Delay
@@ -300,6 +306,7 @@ export function generateTrigger(
300306
) {
301307
lastTriggerRef.current.push(nextOpen);
302308
onOpenChange?.(nextOpen);
309+
onPopupVisibleChange?.(nextOpen);
303310
}
304311
});
305312

@@ -453,6 +460,7 @@ export function generateTrigger(
453460
const onVisibleChanged = (visible: boolean) => {
454461
setInMotion(false);
455462
onAlign();
463+
afterOpenChange?.(visible);
456464
afterPopupVisibleChange?.(visible);
457465
};
458466

tests/basic.test.jsx

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -235,16 +235,18 @@ describe('Trigger.Basic', () => {
235235
fireEvent.mouseDown(document.body);
236236
expect(isPopupAllHidden()).toBeTruthy();
237237
});
238-
describe('afterPopupVisibleChange can be triggered', () => {
238+
describe('afterOpenChange can be triggered', () => {
239239
it('uncontrolled', async () => {
240240
let triggered = 0;
241+
const afterPopupVisibleChange = jest.fn();
241242
const { container } = render(
242243
<Trigger
243244
action={['click']}
244245
popupAlign={placementAlignMap.left}
245-
afterPopupVisibleChange={() => {
246+
afterOpenChange={() => {
246247
triggered = 1;
247248
}}
249+
afterPopupVisibleChange={afterPopupVisibleChange}
248250
popup={<strong>trigger</strong>}
249251
>
250252
<div className="target">click</div>
@@ -256,6 +258,7 @@ describe('Trigger.Basic', () => {
256258
await awaitFakeTimer();
257259

258260
expect(triggered).toBe(1);
261+
expect(afterPopupVisibleChange).toHaveBeenCalledWith(true);
259262
});
260263

261264
it('controlled', async () => {
@@ -979,10 +982,12 @@ describe('Trigger.Basic', () => {
979982
describe('click window to hide', () => {
980983
it('should hide', async () => {
981984
const onOpenChange = jest.fn();
985+
const onPopupVisibleChange = jest.fn();
982986

983987
const { container } = render(
984988
<Trigger
985989
onOpenChange={onOpenChange}
990+
onPopupVisibleChange={onPopupVisibleChange}
986991
action="click"
987992
popup={<strong>trigger</strong>}
988993
>
@@ -993,13 +998,15 @@ describe('Trigger.Basic', () => {
993998
fireEvent.click(container.querySelector('.target'));
994999
await awaitFakeTimer();
9951000
expect(onOpenChange).toHaveBeenCalledWith(true);
1001+
expect(onPopupVisibleChange).toHaveBeenCalledWith(true);
9961002
onOpenChange.mockReset();
9971003

9981004
// Click outside to close
9991005
fireEvent.mouseDown(document.body);
10001006
fireEvent.click(document.body);
10011007
await awaitFakeTimer();
10021008
expect(onOpenChange).toHaveBeenCalledWith(false);
1009+
expect(onPopupVisibleChange).toHaveBeenCalledWith(false);
10031010
});
10041011

10051012
it('should not hide when mouseDown inside but mouseUp outside', async () => {

0 commit comments

Comments
 (0)