File tree Expand file tree Collapse file tree 5 files changed +27
-0
lines changed Expand file tree Collapse file tree 5 files changed +27
-0
lines changed Original file line number Diff line number Diff line change @@ -21,6 +21,7 @@ const MobilePopupInner = React.forwardRef<PopupInnerRef, MobilePopupInnerProps>(
2121 popupMotion = { } ,
2222 popupRender,
2323 } = { } ,
24+ onClick,
2425 } = props ;
2526 const elementRef = React . useRef < HTMLDivElement > ( ) ;
2627
@@ -67,6 +68,7 @@ const MobilePopupInner = React.forwardRef<PopupInnerRef, MobilePopupInnerProps>(
6768 < div
6869 ref = { motionRef }
6970 className = { mergedClassName }
71+ onClick = { onClick }
7072 style = { {
7173 ...motionStyle ,
7274 ...mergedStyle ,
Original file line number Diff line number Diff line change @@ -50,6 +50,7 @@ export interface PopupInnerProps {
5050 onMouseLeave ?: React . MouseEventHandler < HTMLDivElement > ;
5151 onMouseDown ?: React . MouseEventHandler < HTMLDivElement > ;
5252 onTouchStart ?: React . TouchEventHandler < HTMLDivElement > ;
53+ onClick ?: React . MouseEventHandler < HTMLDivElement > ;
5354}
5455
5556export interface PopupInnerRef {
@@ -82,6 +83,7 @@ const PopupInner = React.forwardRef<PopupInnerRef, PopupInnerProps>(
8283 onMouseLeave,
8384 onMouseDown,
8485 onTouchStart,
86+ onClick,
8587 } = props ;
8688
8789 const alignRef = useRef < RefAlign > ( ) ;
@@ -251,6 +253,7 @@ const PopupInner = React.forwardRef<PopupInnerRef, PopupInnerProps>(
251253 onMouseLeave = { onMouseLeave }
252254 onMouseDownCapture = { onMouseDown }
253255 onTouchStartCapture = { onTouchStart }
256+ onClick = { onClick }
254257 style = { {
255258 ...motionStyle ,
256259 ...mergedStyle ,
Original file line number Diff line number Diff line change @@ -29,6 +29,7 @@ export interface PopupProps {
2929 onMouseLeave ?: React . MouseEventHandler < HTMLElement > ;
3030 onMouseDown ?: React . MouseEventHandler < HTMLElement > ;
3131 onTouchStart ?: React . TouchEventHandler < HTMLElement > ;
32+ onClick ?: React . MouseEventHandler < HTMLDivElement > ;
3233 stretch ?: StretchType ;
3334 children ?: React . ReactNode ;
3435 point ?: Point ;
Original file line number Diff line number Diff line change @@ -59,6 +59,7 @@ export interface TriggerProps {
5959 hideAction ?: ActionType [ ] ;
6060 getPopupClassNameFromAlign ?: ( align : AlignType ) => string ;
6161 onPopupVisibleChange ?: ( visible : boolean ) => void ;
62+ onPopupClick ?: React . MouseEventHandler < HTMLDivElement > ;
6263 afterPopupVisibleChange ?: ( visible : boolean ) => void ;
6364 popup : React . ReactNode | ( ( ) => React . ReactNode ) ;
6465 popupStyle ?: React . CSSProperties ;
@@ -516,6 +517,7 @@ export function generateTrigger(
516517 alignPoint,
517518 mobile,
518519 forceRender,
520+ onPopupClick,
519521 } = this . props ;
520522 const { popupVisible, point } = this . state ;
521523
@@ -557,6 +559,7 @@ export function generateTrigger(
557559 motion = { popupMotion }
558560 mobile = { mobile }
559561 forceRender = { forceRender }
562+ onClick = { onPopupClick }
560563 >
561564 { typeof popup === 'function' ? popup ( ) : popup }
562565 </ Popup >
Original file line number Diff line number Diff line change @@ -839,4 +839,22 @@ describe('Trigger.Basic', () => {
839839 trigger ( container , '.target' ) ;
840840 expect ( document . querySelector ( '.rc-trigger-popup' ) ) . toBeTruthy ( ) ;
841841 } ) ;
842+
843+ it ( 'onPopupClick' , ( ) => {
844+ const onPopupClick = jest . fn ( ) ;
845+
846+ render (
847+ < Trigger
848+ popupVisible
849+ popup = { < strong > trigger</ strong > }
850+ onPopupClick = { onPopupClick }
851+ >
852+ < div />
853+ </ Trigger > ,
854+ ) ;
855+
856+ fireEvent . click ( document . querySelector ( 'strong' ) ) ;
857+
858+ expect ( onPopupClick ) . toHaveBeenCalled ( ) ;
859+ } ) ;
842860} ) ;
You can’t perform that action at this time.
0 commit comments