@ -1,4 +1,4 @@
import React , { Suspense } from 'react' ;
import React from 'react' ;
import { PopoverController , Popover , ClickOutsideWrapper } from '@grafana/ui' ;
import { FunctionDescriptor , FunctionEditorControls , FunctionEditorControlsProps } from './FunctionEditorControls' ;
@ -9,15 +9,6 @@ interface FunctionEditorProps extends FunctionEditorControlsProps {
interface FunctionEditorState {
showingDescription : boolean ;
}
const FunctionDescription = React . lazy ( async ( ) = > {
// @ts-ignore
const { default : rst2html } = await import ( /* webpackChunkName: "rst2html" */ 'rst2html' ) ;
return {
default ( props : { description? : string } ) {
return < div dangerouslySetInnerHTML = { { __html : rst2html ( props . description ? ? '' ) } } / > ;
} ,
} ;
} ) ;
class FunctionEditor extends React . PureComponent < FunctionEditorProps , FunctionEditorState > {
private triggerRef = React . createRef < HTMLSpanElement > ( ) ;
@ -31,25 +22,7 @@ class FunctionEditor extends React.PureComponent<FunctionEditorProps, FunctionEd
}
renderContent = ( { updatePopperPosition } : any ) = > {
const {
onMoveLeft ,
onMoveRight ,
func : {
def : { name , description } ,
} ,
} = this . props ;
const { showingDescription } = this . state ;
if ( showingDescription ) {
return (
< div style = { { overflow : 'auto' , maxHeight : '30rem' , textAlign : 'left' , fontWeight : 'normal' } } >
< h4 style = { { color : 'white' } } > { name } < / h4 >
< Suspense fallback = { < span > Loading description . . . < / span > } >
< FunctionDescription description = { description } / >
< / Suspense >
< / div >
) ;
}
const { onMoveLeft , onMoveRight } = this . props ;
return (
< FunctionEditorControls
@ -62,11 +35,6 @@ class FunctionEditor extends React.PureComponent<FunctionEditorProps, FunctionEd
onMoveRight ( this . props . func ) ;
updatePopperPosition ( ) ;
} }
onDescriptionShow = { ( ) = > {
this . setState ( { showingDescription : true } , ( ) = > {
updatePopperPosition ( ) ;
} ) ;
} }
/ >
) ;
} ;
@ -83,9 +51,6 @@ class FunctionEditor extends React.PureComponent<FunctionEditorProps, FunctionEd
referenceElement = { this . triggerRef . current }
wrapperClassName = "popper"
className = "popper__background"
onMouseLeave = { ( ) = > {
this . setState ( { showingDescription : false } ) ;
} }
renderArrow = { ( { arrowProps , placement } ) = > (
< div className = "popper__arrow" data - placement = { placement } { ...arrowProps } / >
) }
@ -101,9 +66,6 @@ class FunctionEditor extends React.PureComponent<FunctionEditorProps, FunctionEd
< span
ref = { this . triggerRef }
onClick = { popperProps . show ? hidePopper : showPopper }
onMouseLeave = { ( ) = > {
this . setState ( { showingDescription : false } ) ;
} }
style = { { cursor : 'pointer' } }
>
{ this . props . func . def . name }