blob: 511084f584ee0f7f70aac1be050f3eb99d96a3df [file] [log] [blame]
import React from 'react';
import ReactDOM from 'react-dom';
import cookie from 'js-cookie';
import Language from '../../components/language';
import Header from '../../components/header';
import Footer from '../../components/footer';
import Md2Html from '../../components/md2html';
import Sidemenu from '../../components/sidemenu';
import siteConfig from '../../../site_config/site';
import docs120Config from '../../../site_config/docs1-2-0';
import docs121Config from '../../../site_config/docs1-2-1';
const docsSource = {
'1.2.0': docs120Config,
'1.2.1': docs121Config,
};
const isValidVersion = version => version && docsSource.hasOwnProperty(version);
class Docs extends Md2Html(Language) {
render() {
const language = this.getLanguage();
let dataSource = {};
// from location path
let version = window.location.pathname.split('/')[3];
if (isValidVersion(version) || version === 'latest') {
cookie.set('docs_version', version);
}
// from rendering html
if (!version && this.props.subdir) {
version = this.props.subdir.split('/')[0];
}
if (isValidVersion(version)) {
dataSource = docsSource[version][language];
} else if (isValidVersion(cookie.get('docs_version'))) {
dataSource = docsSource[cookie.get('docs_version')][language];
} else if (isValidVersion(siteConfig.docsLatest)) {
dataSource = docsSource[siteConfig.docsLatest][language];
dataSource.sidemenu.forEach((menu) => {
menu.children.forEach((submenu) => {
submenu.link = submenu.link.replace(`docs/${siteConfig.docsLatest}`, 'docs/latest');
});
});
} else {
return null;
}
const __html = this.props.__html || this.state.__html;
return (
<div className="md2html docs-page">
<Header
currentKey="docs"
type="dark"
logo="/img/logo.png"
language={language}
onLanguageChange={this.onLanguageChange}
/>
<section className="content-section">
<Sidemenu dataSource={dataSource.sidemenu} />
<div
className="doc-content markdown-body"
ref={(node) => { this.markdownContainer = node; }}
dangerouslySetInnerHTML={{ __html }}
/>
</section>
<Footer logo="/img/ds_gray.svg" language={language} />
</div>
);
}
}
document.getElementById('root') && ReactDOM.render(<Docs />, document.getElementById('root'));
export default Docs;