UNPKG

@wgoo/cli

Version:

Wgoo Cli 是一个 React 组件库构建工具,通过 Wgoo Cli 可以快速搭建一套功能完备的 React 组件库。

126 lines (108 loc) 3.89 kB
import React from 'react'; import { packageVersion } from 'site-desktop-shared'; import './style.less'; class Navbar extends React.Component { constructor(props) { super(props); this.$refs = { version: React.createRef(), }; this.state = { packageVersion, showVersionPop: false, }; } // { lang: "en-US", label: "EN" } get anotherLang() { const items = this.props.langConfigs.filter((item) => item.lang !== this.props.lang); if (items.length) { return items[0]; } return {}; } get langLabel() { return this.anotherLang.label; } get langLink() { return window.location.hash.replace(this.props.lang, this.anotherLang.lang); } toggleVersionPop = () => { const val = !this.state.showVersionPop; const action = val ? 'add' : 'remove'; document.body[`${action}EventListener`]('click', this.checkHideVersionPop); this.setState({ showVersionPop: val, }); }; checkHideVersionPop = (event) => { if (!this.$refs.version.contains(event.target)) { this.setState({ showVersionPop: false, }); } }; onSwitchVersion = (version) => { if (version && version.link) { window.location.href = version.link; } }; render() { const { config = {}, versions } = this.props; const { showVersionPop } = this.state; return ( <div className='wgoo-doc-header'> <div className='wgoo-doc-row'> <div className='wgoo-doc-header__top'> <a className='wgoo-doc-header__logo'> <img src={config.logo} /> <span>{config.title}</span> </a> {/*<ul className='wgoo-doc-header__top-nav'>*/} {/* {config.links.map((item, index) => {*/} {/* return (*/} {/* <li key={index} className='wgoo-doc-header__top-nav-item'>*/} {/* <a className='wgoo-doc-header__link' target='_blank' href={item.url}>*/} {/* {item.logo ? <img src={item.logo} /> : item.text ? <span>{item.text}</span> : null}*/} {/* </a>*/} {/* </li>*/} {/* );*/} {/* })}*/} {/* {versions && (*/} {/* <li className='wgoo-doc-header__top-nav-item' ref={this.$refs.version}>*/} {/* <span className='wgoo-doc-header__cube wgoo-doc-header__version' onClick={this.toggleVersionPop}>*/} {/* {packageVersion}*/} {/* <div className='wgoo-doc-dropdown'>*/} {/* {showVersionPop && (*/} {/* <div className='wgoo-doc-header__version-pop'>*/} {/* {versions.map((item, index) => {*/} {/* return (*/} {/* <div*/} {/* key={index}*/} {/* className='wgoo-doc-header__version-pop-item'*/} {/* onClick={() => this.onSwitchVersion(item)}*/} {/* >*/} {/* {item.label}*/} {/* </div>*/} {/* );*/} {/* })}*/} {/* </div>*/} {/* )}*/} {/* </div>*/} {/* </span>*/} {/* </li>*/} {/* )}*/} {/* {this.langLabel && this.langLink && (*/} {/* <li className='wgoo-doc-header__top-nav-item'>*/} {/* <a className='wgoo-doc-header__cube' href={this.langLink}>*/} {/* {this.langLabel}*/} {/* </a>*/} {/* </li>*/} {/* )}*/} {/*</ul>*/} </div> </div> </div> ); } } export default Navbar;