From 794b155827868d67f1cec45bbe8c3a3e4be02597 Mon Sep 17 00:00:00 2001
From: Fabio Berger <me@fabioberger.com>
Date: Sun, 18 Mar 2018 18:44:52 +0100
Subject: Add support for displaying exported functions

---
 .../react-docs/src/components/documentation.tsx    | 26 +++++++++++++++-------
 1 file changed, 18 insertions(+), 8 deletions(-)

(limited to 'packages/react-docs/src/components/documentation.tsx')

diff --git a/packages/react-docs/src/components/documentation.tsx b/packages/react-docs/src/components/documentation.tsx
index b46358159..67523dcc3 100644
--- a/packages/react-docs/src/components/documentation.tsx
+++ b/packages/react-docs/src/components/documentation.tsx
@@ -25,6 +25,7 @@ import {
     SolidityMethod,
     SupportedDocJson,
     TypeDefinitionByName,
+    TypescriptFunction,
     TypescriptMethod,
 } from '../types';
 import { constants } from '../utils/constants';
@@ -33,7 +34,7 @@ import { utils } from '../utils/utils';
 import { Badge } from './badge';
 import { Comment } from './comment';
 import { EventDefinition } from './event_definition';
-import { MethodBlock } from './method_block';
+import { SignatureBlock } from './signature_block';
 import { SourceLink } from './source_link';
 import { Type } from './type';
 import { TypeDefinition } from './type_definition';
@@ -216,8 +217,12 @@ export class Documentation extends React.Component<DocumentationProps, Documenta
 
         const sortedMethods = _.sortBy(docSection.methods, 'name');
         const methodDefs = _.map(sortedMethods, method => {
-            const isConstructor = false;
-            return this._renderMethodBlocks(method, sectionName, isConstructor, typeDefinitionByName);
+            return this._renderSignatureBlocks(method, sectionName, typeDefinitionByName);
+        });
+
+        const sortedFunctions = _.sortBy(docSection.functions, 'name');
+        const functionDefs = _.map(sortedFunctions, func => {
+            return this._renderSignatureBlocks(func, sectionName, typeDefinitionByName);
         });
 
         const sortedEvents = _.sortBy(docSection.events, 'name');
@@ -262,6 +267,12 @@ export class Documentation extends React.Component<DocumentationProps, Documenta
                         <div>{methodDefs}</div>
                     </div>
                 )}
+                {docSection.functions.length > 0 && (
+                    <div>
+                        <h2 style={headerStyle}>Functions</h2>
+                        <div>{functionDefs}</div>
+                    </div>
+                )}
                 {!_.isUndefined(docSection.events) &&
                     docSection.events.length > 0 && (
                         <div>
@@ -318,7 +329,7 @@ export class Documentation extends React.Component<DocumentationProps, Documenta
         typeDefinitionByName: TypeDefinitionByName,
     ): React.ReactNode {
         const constructorDefs = _.map(constructors, constructor => {
-            return this._renderMethodBlocks(constructor, sectionName, constructor.isConstructor, typeDefinitionByName);
+            return this._renderSignatureBlocks(constructor, sectionName, typeDefinitionByName);
         });
         return <div>{constructorDefs}</div>;
     }
@@ -340,14 +351,13 @@ export class Documentation extends React.Component<DocumentationProps, Documenta
             </div>
         );
     }
-    private _renderMethodBlocks(
-        method: SolidityMethod | TypescriptMethod,
+    private _renderSignatureBlocks(
+        method: SolidityMethod | TypescriptFunction | TypescriptMethod,
         sectionName: string,
-        isConstructor: boolean,
         typeDefinitionByName: TypeDefinitionByName,
     ): React.ReactNode {
         return (
-            <MethodBlock
+            <SignatureBlock
                 key={`method-${method.name}-${sectionName}`}
                 sectionName={sectionName}
                 method={method}
-- 
cgit v1.2.3


From 8743c40911c98fad781de631af0348d0120fc153 Mon Sep 17 00:00:00 2001
From: Fabio Berger <me@fabioberger.com>
Date: Thu, 22 Mar 2018 13:32:14 +0000
Subject: Use isEmpty

---
 packages/react-docs/src/components/documentation.tsx | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

(limited to 'packages/react-docs/src/components/documentation.tsx')

diff --git a/packages/react-docs/src/components/documentation.tsx b/packages/react-docs/src/components/documentation.tsx
index 67523dcc3..14fe175cf 100644
--- a/packages/react-docs/src/components/documentation.tsx
+++ b/packages/react-docs/src/components/documentation.tsx
@@ -248,26 +248,26 @@ export class Documentation extends React.Component<DocumentationProps, Documenta
                     {this._renderNetworkBadgesIfExists(sectionName)}
                 </div>
                 {docSection.comment && <Comment comment={docSection.comment} />}
-                {docSection.constructors.length > 0 &&
+                {!_.isEmpty(docSection.constructors) &&
                     this.props.docsInfo.isVisibleConstructor(sectionName) && (
                         <div>
                             <h2 style={headerStyle}>Constructor</h2>
                             {this._renderConstructors(docSection.constructors, sectionName, typeDefinitionByName)}
                         </div>
                     )}
-                {docSection.properties.length > 0 && (
+                {!_.isEmpty(docSection.properties) && (
                     <div>
                         <h2 style={headerStyle}>Properties</h2>
                         <div>{propertyDefs}</div>
                     </div>
                 )}
-                {docSection.methods.length > 0 && (
+                {!_.isEmpty(docSection.methods) && (
                     <div>
                         <h2 style={headerStyle}>Methods</h2>
                         <div>{methodDefs}</div>
                     </div>
                 )}
-                {docSection.functions.length > 0 && (
+                {!_.isEmpty(docSection.functions) && (
                     <div>
                         <h2 style={headerStyle}>Functions</h2>
                         <div>{functionDefs}</div>
-- 
cgit v1.2.3

