import { observer } from 'mobx-react'; import * as React from 'react'; import { ExternalDocumentation } from '../ExternalDocumentation/ExternalDocumentation'; import { AdvancedMarkdown } from '../Markdown/AdvancedMarkdown'; import { H2, H3, MiddlePanel, Row, Section, ShareLink } from '../../common-elements'; import type { ContentItemModel } from '../../services'; import type { GroupModel, OperationModel } from '../../services/models'; import { Operation } from '../Operation/Operation'; @observer export class ContentItems extends React.Component<{ items: ContentItemModel[]; }> { render() { const items = this.props.items; if (items.length === 0) { return null; } return items.map(item => { return ; }); } } export interface ContentItemProps { item: ContentItemModel; } @observer export class ContentItem extends React.Component { render() { const item = this.props.item; let content; const { type } = item; switch (type) { case 'group': content = null; break; case 'tag': case 'section': content = ; break; case 'operation': content = ; break; default: content = ; } return ( <> {content && (
{content}
)} {item.items && } ); } } const middlePanelWrap = component => {component}; @observer export class SectionItem extends React.Component { render() { const { name, description, externalDocs, level } = this.props.item as GroupModel; const Header = level === 2 ? H3 : H2; return ( <>
{name}
{externalDocs && ( )} ); } } @observer export class OperationItem extends React.Component<{ item: OperationModel; }> { render() { return ; } }