From 166c741beb569ea5245a47203edaef4c9232b8d4 Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Tue, 28 Nov 2017 15:42:37 -0600 Subject: Add connect docs --- .../ts/containers/connect_documentation.tsx | 97 ++++++++++++++++++++++ packages/website/ts/index.tsx | 7 ++ packages/website/ts/types.ts | 1 + 3 files changed, 105 insertions(+) create mode 100644 packages/website/ts/containers/connect_documentation.tsx diff --git a/packages/website/ts/containers/connect_documentation.tsx b/packages/website/ts/containers/connect_documentation.tsx new file mode 100644 index 000000000..f6ae53a30 --- /dev/null +++ b/packages/website/ts/containers/connect_documentation.tsx @@ -0,0 +1,97 @@ +import BigNumber from 'bignumber.js'; +import * as _ from 'lodash'; +import * as React from 'react'; +import {connect} from 'react-redux'; +import {Dispatch, Store as ReduxStore} from 'redux'; +import {Blockchain} from 'ts/blockchain'; +import {DocsInfo} from 'ts/pages/documentation/docs_info'; +import { + Documentation as DocumentationComponent, + DocumentationAllProps, +} from 'ts/pages/documentation/documentation'; +import {Dispatcher} from 'ts/redux/dispatcher'; +import {State} from 'ts/redux/reducer'; +import {DocsInfoConfig, WebsitePaths} from 'ts/types'; +import {typeDocUtils} from 'ts/utils/typedoc_utils'; + +/* tslint:disable:no-var-requires */ +const IntroMarkdown = require('md/docs/connect/introduction'); +const InstallationMarkdown = require('md/docs/connect/installation'); +/* tslint:enable:no-var-requires */ + +const connectDocSections = { + introduction: 'introduction', + installation: 'installation', + httpClient: 'httpClient', + types: 'types', +}; + +const docsInfoConfig: DocsInfoConfig = { + packageName: '0x Connect', + subPackageName: 'connect', + packageUrl: 'https://github.com/0xProject/0x.js', + websitePath: WebsitePaths.Connect, + docsJsonRoot: 'https://s3.amazonaws.com/connect-docs-jsons', + menu: { + introduction: [ + connectDocSections.introduction, + ], + install: [ + connectDocSections.installation, + ], + httpClient: [ + connectDocSections.httpClient, + ], + types: [ + connectDocSections.types, + ], + }, + sectionNameToMarkdown: { + [connectDocSections.introduction]: IntroMarkdown, + [connectDocSections.installation]: InstallationMarkdown, + }, + // Note: This needs to be kept in sync with the types exported in index.ts. Unfortunately there is + // currently no way to extract the re-exported types from index.ts via TypeDoc :( + publicTypes: [ + 'Client', + 'FeesRequest', + 'FeesResponse', + 'OrderbookRequest', + 'OrderbookResponse', + 'OrdersRequest', + 'TokenPairsItem', + 'TokenPairsRequest', + ], + sectionNameToModulePath: { + [connectDocSections.httpClient]: ['"src/http_client"'], + [connectDocSections.types]: ['"src/types"'], + }, + menuSubsectionToVersionWhenIntroduced: {}, + sections: connectDocSections, + visibleConstructors: [connectDocSections.httpClient], + convertToDocAgnosticFormatFn: typeDocUtils.convertToDocAgnosticFormat.bind(typeDocUtils), +}; +const docsInfo = new DocsInfo(docsInfoConfig); + +interface ConnectedState { + docsVersion: string; + availableDocVersions: string[]; + docsInfo: DocsInfo; +} + +interface ConnectedDispatch { + dispatcher: Dispatcher; +} + +const mapStateToProps = (state: State, ownProps: DocumentationAllProps): ConnectedState => ({ + docsVersion: state.docsVersion, + availableDocVersions: state.availableDocVersions, + docsInfo, +}); + +const mapDispatchToProps = (dispatch: Dispatch): ConnectedDispatch => ({ + dispatcher: new Dispatcher(dispatch), +}); + +export const Documentation: React.ComponentClass = + connect(mapStateToProps, mapDispatchToProps)(DocumentationComponent); diff --git a/packages/website/ts/index.tsx b/packages/website/ts/index.tsx index 8b6d4d956..283eb8125 100644 --- a/packages/website/ts/index.tsx +++ b/packages/website/ts/index.tsx @@ -87,6 +87,12 @@ const LazySmartContractsDocumentation = createLazyComponent( /* webpackChunkName: "smartContractDocs" */'ts/containers/smart_contracts_documentation', ), ); +const LazyConnectDocumentation = createLazyComponent( + 'Documentation', + async () => System.import( + /* webpackChunkName: "connectDocs" */'ts/containers/connect_documentation', + ), +); const docs = class Documentation extends React.Component { @@ -112,6 +118,7 @@ render( +