File tree Expand file tree Collapse file tree 3 files changed +13
-4
lines changed Expand file tree Collapse file tree 3 files changed +13
-4
lines changed Original file line number Diff line number Diff line change @@ -88,6 +88,7 @@ export interface InternalPreviewConfig {
8888 open ?: boolean ;
8989 getContainer ?: PortalProps [ 'getContainer' ] ;
9090 zIndex ?: number ;
91+ afterOpenChange ?: ( open : boolean ) => void ;
9192
9293 // Operation
9394 movable ?: boolean ;
@@ -170,6 +171,7 @@ const Preview: React.FC<PreviewProps> = props => {
170171 movable = true ,
171172 onClose,
172173 open,
174+ afterOpenChange,
173175 icons = { } ,
174176 closeIcon,
175177 getContainer,
@@ -366,6 +368,7 @@ const Preview: React.FC<PreviewProps> = props => {
366368 if ( ! nextVisible ) {
367369 setLockScroll ( false ) ;
368370 }
371+ afterOpenChange ?.( nextVisible ) ;
369372 } ;
370373
371374 // ========================== Portal ==========================
Original file line number Diff line number Diff line change @@ -974,11 +974,13 @@ describe('Preview', () => {
974974
975975 it ( 'should be closed when press esc after click portal' , ( ) => {
976976 const onOpenChange = jest . fn ( ) ;
977+ const afterOpenChange = jest . fn ( ) ;
977978 const { container } = render (
978979 < Image
979980 src = "https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png"
980981 preview = { {
981982 onOpenChange,
983+ afterOpenChange,
982984 } }
983985 /> ,
984986 ) ;
@@ -991,15 +993,17 @@ describe('Preview', () => {
991993 expect ( document . querySelector ( '.rc-image-preview' ) ) . toBeTruthy ( ) ;
992994
993995 expect ( onOpenChange ) . toHaveBeenCalledWith ( true ) ;
996+ expect ( afterOpenChange ) . toHaveBeenCalledWith ( true ) ;
994997
995998 fireEvent . click ( document . querySelector ( '.rc-image-preview-actions' ) ) ;
996999
9971000 fireEvent . keyDown ( window , { key : 'Escape' , keyCode : 27 } ) ;
9981001
9991002 expect ( onOpenChange ) . toHaveBeenCalledWith ( false ) ;
1000- expect ( onOpenChange ) . toHaveBeenCalledTimes ( 2 ) ;
1003+ expect ( afterOpenChange ) . toHaveBeenCalledWith ( false ) ;
10011004
1002- onOpenChange . mockRestore ( ) ;
1005+ expect ( onOpenChange ) . toHaveBeenCalledTimes ( 2 ) ;
1006+ expect ( afterOpenChange ) . toHaveBeenCalledTimes ( 2 ) ;
10031007 } ) ;
10041008
10051009 it ( 'not modify preview image size' , ( ) => {
Original file line number Diff line number Diff line change @@ -15,8 +15,9 @@ describe('PreviewGroup', () => {
1515 it ( 'onChange should be called' , ( ) => {
1616 const onChange = jest . fn ( ) ;
1717 const onOpenChange = jest . fn ( ) ;
18+ const afterOpenChange = jest . fn ( ) ;
1819 const { container } = render (
19- < Image . PreviewGroup preview = { { onChange, onOpenChange } } >
20+ < Image . PreviewGroup preview = { { onChange, onOpenChange, afterOpenChange } } >
2021 < Image src = "src1" className = "firstImg" />
2122 < Image preview = { false } src = "src2" />
2223 < Image src = "src3" />
@@ -29,7 +30,8 @@ describe('PreviewGroup', () => {
2930 jest . runAllTimers ( ) ;
3031 } ) ;
3132 expect ( onChange ) . not . toHaveBeenCalled ( ) ;
32- expect ( onOpenChange ) . toBeCalledWith ( true , { current : 0 } ) ;
33+ expect ( onOpenChange ) . toHaveBeenCalledWith ( true , { current : 0 } ) ;
34+ expect ( afterOpenChange ) . toHaveBeenCalledWith ( true ) ;
3335
3436 fireEvent . click ( document . querySelector ( '.rc-image-preview-switch-next' ) ) ;
3537 act ( ( ) => {
You can’t perform that action at this time.
0 commit comments