@ -3,7 +3,7 @@
// SPDX-License-Identifier: MIT
// SPDX-License-Identifier: MIT
import './styles.scss' ;
import './styles.scss' ;
import React , { Dispatch , useEffect } from 'react' ;
import React , { Dispatch , useEffect , TransitionEvent } from 'react' ;
import { AnyAction } from 'redux' ;
import { AnyAction } from 'redux' ;
import { connect } from 'react-redux' ;
import { connect } from 'react-redux' ;
import { MenuFoldOutlined , MenuUnfoldOutlined } from '@ant-design/icons' ;
import { MenuFoldOutlined , MenuUnfoldOutlined } from '@ant-design/icons' ;
@ -81,24 +81,22 @@ function ObjectsSideBar(props: StateToProps & DispatchToProps & OwnProps): JSX.E
} ;
} ;
} , [ ] ) ;
} , [ ] ) ;
useEffect ( ( ) = > {
const collapse = ( ) : void = > {
const listener = ( event : Event ) : void = > {
const [ collapser ] = window . document . getElementsByClassName ( 'cvat-objects-sidebar' ) ;
if (
const listener = ( event : TransitionEvent ) : void = > {
( event as TransitionEvent ) . propertyName === 'width' &&
if ( event . target && event . propertyName === 'width' && event . target === collapser ) {
( ( event . target as any ) . classList as DOMTokenList ) . contains ( 'ant-tabs-tab-prev' )
canvasInstance . fitCanvas ( ) ;
) {
canvasInstance . fit ( ) ;
canvasInstance . fit ( ) ;
( collapser as HTMLElement ) . removeEventListener ( 'transitionend' , listener as any ) ;
}
}
} ;
} ;
const [ sidebar ] = window . document . getElementsByClassName ( 'cvat-objects-sidebar' ) ;
if ( collapser ) {
( collapser as HTMLElement ) . addEventListener ( 'transitionend' , listener as any ) ;
sidebar . addEventListener ( 'transitionstart' , listener ) ;
}
return ( ) = > {
collapseSidebar ( ) ;
sidebar . removeEventListener ( 'transitionstart' , listener ) ;
} ;
} ;
} , [ ] ) ;
return (
return (
< Layout.Sider
< Layout.Sider
@ -116,7 +114,7 @@ function ObjectsSideBar(props: StateToProps & DispatchToProps & OwnProps): JSX.E
className = { ` cvat-objects-sidebar-sider
className = { ` cvat-objects-sidebar-sider
ant - layout - sider - zero - width - trigger
ant - layout - sider - zero - width - trigger
ant - layout - sider - zero - width - trigger - left ` }
ant - layout - sider - zero - width - trigger - left ` }
onClick = { collapse Sidebar }
onClick = { collapse }
>
>
{ sidebarCollapsed ? < MenuFoldOutlined title = 'Show' / > : < MenuUnfoldOutlined title = 'Hide' / > }
{ sidebarCollapsed ? < MenuFoldOutlined title = 'Show' / > : < MenuUnfoldOutlined title = 'Hide' / > }
< / span >
< / span >