@@ -138,13 +138,24 @@ export const VDiskPopup = ({data, ...props}: VDiskPopupProps) => {
138138 const isFullData = isFullVDiskData ( data ) ;
139139
140140 const [ isPopupContentHovered , setIsPopupContentHovered ] = React . useState ( false ) ;
141+ const [ isFocused , setIsFocused ] = React . useState ( false ) ;
142+
141143 const onMouseLeave = React . useCallback ( ( ) => {
142144 setIsPopupContentHovered ( false ) ;
143145 } , [ ] ) ;
146+
144147 const onMouseEnter = React . useCallback ( ( ) => {
145148 setIsPopupContentHovered ( true ) ;
146149 } , [ ] ) ;
147150
151+ const onContextMenu = React . useCallback ( ( ) => {
152+ setIsFocused ( true ) ;
153+ } , [ ] ) ;
154+
155+ const onBlur = React . useCallback ( ( ) => {
156+ setIsFocused ( false ) ;
157+ } , [ ] ) ;
158+
148159 const vdiskInfo = React . useMemo (
149160 ( ) => ( isFullData ? prepareVDiskData ( data ) : prepareUnavailableVDiskData ( data ) ) ,
150161 [ data , isFullData ] ,
@@ -191,13 +202,16 @@ export const VDiskPopup = ({data, ...props}: VDiskPopupProps) => {
191202 offset = { [ 0 , 12 ] }
192203 onMouseEnter = { onMouseEnter }
193204 onMouseLeave = { onMouseLeave }
205+ onBlur = { onBlur }
194206 { ...props }
195- open = { isPopupContentHovered || props . open }
207+ open = { isPopupContentHovered || props . open || isFocused }
196208 >
197- { data . DonorMode && < Label className = { b ( 'donor-label' ) } > Donor</ Label > }
198- < InfoViewer title = "VDisk" info = { vdiskInfo } size = "s" />
199- { pdiskInfo && < InfoViewer title = "PDisk" info = { pdiskInfo } size = "s" /> }
200- { donorsInfo . length > 0 && < InfoViewer title = "Donors" info = { donorsInfo } size = "s" /> }
209+ < div onContextMenu = { onContextMenu } >
210+ { data . DonorMode && < Label className = { b ( 'donor-label' ) } > Donor</ Label > }
211+ < InfoViewer title = "VDisk" info = { vdiskInfo } size = "s" />
212+ { pdiskInfo && < InfoViewer title = "PDisk" info = { pdiskInfo } size = "s" /> }
213+ { donorsInfo . length > 0 && < InfoViewer title = "Donors" info = { donorsInfo } size = "s" /> }
214+ </ div >
201215 </ Popup >
202216 ) ;
203217} ;
0 commit comments