Store typedef on the helper and use it to show a parameter list
This commit is contained in:
@@ -2,8 +2,9 @@ import {object} from 'prop-types';
|
||||
import React from 'react';
|
||||
import Markdown from 'react-markdown';
|
||||
import Code from './Code';
|
||||
import Parameter from './Parameter';
|
||||
|
||||
function Class({cls, module}) {
|
||||
function Class({cls, module, helper}) {
|
||||
const exportedName = module.getExportedName(cls.name);
|
||||
let importCode;
|
||||
if (exportedName === 'default') {
|
||||
@@ -17,13 +18,18 @@ function Class({cls, module}) {
|
||||
<h3>{cls.name}</h3>
|
||||
<Code value={importCode} />
|
||||
<Markdown source={cls.doc.classdesc} renderers={{code: Code}} />
|
||||
<h6>Parameters</h6>
|
||||
<ul>
|
||||
{cls.doc.params && cls.doc.params.map(param => <Parameter param={param} module={module} helper={helper} />)}
|
||||
</ul>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
Class.propTypes = {
|
||||
cls: object.isRequired,
|
||||
module: object.isRequired
|
||||
module: object.isRequired,
|
||||
helper: object.isRequired
|
||||
};
|
||||
|
||||
export default Class;
|
||||
@@ -2,8 +2,9 @@ import {object} from 'prop-types';
|
||||
import React from 'react';
|
||||
import Markdown from 'react-markdown';
|
||||
import Code from './Code';
|
||||
import Parameter from './Parameter';
|
||||
|
||||
function Func({func, module}) {
|
||||
function Func({func, module, helper}) {
|
||||
const exportedName = module.getExportedName(func.name);
|
||||
let importCode;
|
||||
if (exportedName === 'default') {
|
||||
@@ -17,13 +18,18 @@ function Func({func, module}) {
|
||||
<h3>{func.name}</h3>
|
||||
<Code value={importCode} />
|
||||
<Markdown source={func.doc.description} renderers={{code: Code}} />
|
||||
<h6>Parameters</h6>
|
||||
<ul>
|
||||
{func.doc.params && func.doc.params.map(param => <Parameter param={param} module={module} helper={helper} />)}
|
||||
</ul>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
Func.propTypes = {
|
||||
func: object.isRequired,
|
||||
module: object.isRequired
|
||||
module: object.isRequired,
|
||||
helper: object.isRequired
|
||||
};
|
||||
|
||||
export default Func;
|
||||
@@ -3,23 +3,24 @@ import React from 'react';
|
||||
import Class from './Class';
|
||||
import Func from './Func';
|
||||
|
||||
function Module({module}) {
|
||||
function Module({module, helper}) {
|
||||
return (
|
||||
<div>
|
||||
<hr />
|
||||
<h2>{module.id}</h2>
|
||||
{module.classes.map(cls => (
|
||||
<Class key={cls.name} cls={cls} module={module} />
|
||||
<Class key={cls.name} cls={cls} module={module} helper={helper} />
|
||||
))}
|
||||
{module.functions.map(func => (
|
||||
<Func key={func.name} func={func} module={module} />
|
||||
<Func key={func.name} func={func} module={module} helper={helper} />
|
||||
))}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
Module.propTypes = {
|
||||
module: object.isRequired
|
||||
module: object.isRequired,
|
||||
helper: object.isRequired
|
||||
};
|
||||
|
||||
export default Module;
|
||||
20
site/components/Parameter.jsx
Normal file
20
site/components/Parameter.jsx
Normal file
@@ -0,0 +1,20 @@
|
||||
import {object} from 'prop-types';
|
||||
import React from 'react';
|
||||
import Type from './Type';
|
||||
|
||||
function Parameter({param, module, helper}) {
|
||||
return (
|
||||
<li>
|
||||
<code>{param.name}</code> - {param.description} {param.optional && <span>(optional)</span>}<br/>
|
||||
{param.type.names.map(longName => <Type longName={longName} module={module} helper={helper} />)}
|
||||
</li>
|
||||
);
|
||||
}
|
||||
|
||||
Parameter.propTypes = {
|
||||
param: object.isRequired,
|
||||
module: object.isRequired,
|
||||
helper: object.isRequired
|
||||
};
|
||||
|
||||
export default Parameter;
|
||||
Reference in New Issue
Block a user