diff --git a/website/layout/AutodocsLayout.js b/website/layout/AutodocsLayout.js index 6d41413aecd..2d1208648ed 100644 --- a/website/layout/AutodocsLayout.js +++ b/website/layout/AutodocsLayout.js @@ -12,15 +12,16 @@ 'use strict'; var DocsSidebar = require('DocsSidebar'); +var Footer = require('Footer'); var Header = require('Header'); var HeaderWithGithub = require('HeaderWithGithub'); -var Footer = require('Footer'); var Marked = require('Marked'); +var Metadata = require('Metadata'); var Prism = require('Prism'); var React = require('React'); var Site = require('Site'); + var slugify = require('slugify'); -var Metadata = require('Metadata'); var styleReferencePattern = /^[^.]+\.propTypes\.style$/; @@ -33,6 +34,10 @@ function renderEnumValue(value) { } function renderType(type) { + return {(type.nullable ? '?' : '') + renderBaseType(type)}; +} + +function renderBaseType(type) { if (type.name === 'enum') { if (typeof type.value === 'string') { return type.value; @@ -92,7 +97,7 @@ function renderType(type) { return type.raw; } - return type.name; + return type.raw || type.name; } function renderTypeNameLink(typeName, docPath, namedTypes) { @@ -121,7 +126,7 @@ function renderTypeWithLinks(type, docTitle, namedTypes) {
{ type.names.map((typeName, index, array) => { - let separator = index < array.length - 1 && ' | '; + const separator = index < array.length - 1 && ' | '; return ( {renderTypeNameLink(typeName, docPath, namedTypes)} @@ -176,7 +181,7 @@ function removeCommentsFromDocblock(docblock) { } function getNamedTypes(typedefs) { - let namedTypes = {}; + const namedTypes = {}; typedefs && typedefs.forEach(typedef => { if (typedef.name) { const type = typedef.name.toLowerCase(); @@ -195,9 +200,9 @@ var ComponentDoc = React.createClass({ {platform} )} {name} - {' '} - {prop.type && - {renderType(prop.type)} + {prop.required ? ': ' : '?: '} + {(prop.type || prop.flowType) && + {renderType(prop.flowType || prop.type)} } {prop.deprecationMessage &&
@@ -428,9 +433,9 @@ var APIDoc = React.createClass({
{property.name} - {property.type && + {(property.type || property.flowType) && - {': ' + renderType(property.type)} + {': ' + renderType(property.flowType || property.type)} }
@@ -654,13 +659,14 @@ var Method = React.createClass({ || ''} {this.props.name} - ({this.props.params && this.props.params.length && this.props.params + ({(this.props.params && this.props.params.length && this.props.params .map((param) => { var res = param.name; res += param.optional ? '?' : ''; + param.type && param.type.names && (res += ': ' + param.type.names.join(', ')); return res; }) - .join(', ')}) + .join(', ')) || ''}) {this.props.returns && ': ' + this.renderTypehint(this.props.returns.type)} @@ -805,7 +811,7 @@ var Modal = React.createClass({
- +