import * as _ from 'lodash'; import * as React from 'react'; import {DocsInfo} from 'ts/pages/documentation/docs_info'; import {Type} from 'ts/pages/documentation/type'; import {AnchorTitle} from 'ts/pages/shared/anchor_title'; import {Event, EventArg, HeaderSizes} from 'ts/types'; import {constants} from 'ts/utils/constants'; import {utils} from 'ts/utils/utils'; const KEYWORD_COLOR = '#a81ca6'; const CUSTOM_GREEN = 'rgb(77, 162, 75)'; interface EventDefinitionProps { event: Event; docsInfo: DocsInfo; } interface EventDefinitionState { shouldShowAnchor: boolean; } export class EventDefinition extends React.Component { constructor(props: EventDefinitionProps) { super(props); this.state = { shouldShowAnchor: false, }; } public render() { const event = this.props.event; return (
                        
                            {this.renderEventCode()}
                        
                    
); } private renderEventCode() { const indexed = indexed; const eventArgs = _.map(this.props.event.eventArgs, (eventArg: EventArg) => { const type = ( ); return ( {eventArg.name}{eventArg.isIndexed ? indexed : ''}: {type}, ); }); const argList = _.reduce(eventArgs, (prev: React.ReactNode, curr: React.ReactNode) => { return [prev, '\n\t', curr]; }); return ( {`{`}
{'\t'}{argList}
{`}`}
); } private setAnchorVisibility(shouldShowAnchor: boolean) { this.setState({ shouldShowAnchor, }); } }