Refactor docs to be more declarative, put all hard-coded doc-related data in one place so it easier to add new doc pages

This commit is contained in:
Fabio Berger
2017-11-28 11:16:35 -06:00
parent 78f0ab3682
commit 3472bdcfd4
16 changed files with 428 additions and 286 deletions

View File

@@ -1,11 +1,13 @@
import * as _ from 'lodash';
import * as React from 'react';
import {DocsInfo} from 'ts/pages/documentation/docs_info';
import {MethodSignature} from 'ts/pages/documentation/method_signature';
import {Type} from 'ts/pages/documentation/type';
import {CustomType, TypeDocTypes} from 'ts/types';
interface InterfaceProps {
type: CustomType;
docsInfo: DocsInfo;
}
export function Interface(props: InterfaceProps) {
@@ -15,11 +17,12 @@ export function Interface(props: InterfaceProps) {
<span key={`property-${property.name}-${property.type}-${type.name}`}>
{property.name}:{' '}
{property.type.typeDocType !== TypeDocTypes.Reflection ?
<Type type={property.type} /> :
<Type type={property.type} docsInfo={props.docsInfo} /> :
<MethodSignature
method={property.type.method}
shouldHideMethodName={true}
shouldUseArrowSyntax={true}
docsInfo={props.docsInfo}
/>
},
</span>
@@ -30,7 +33,7 @@ export function Interface(props: InterfaceProps) {
const is = type.indexSignature;
const param = (
<span key={`indexSigParams-${is.keyName}-${is.keyType}-${type.name}`}>
{is.keyName}: <Type type={is.keyType} />
{is.keyName}: <Type type={is.keyType} docsInfo={props.docsInfo} />
</span>
);
properties.push((