UNPKG

@wgoo/cli

Version:

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

65 lines (55 loc) 1.42 kB
import React from 'react'; import './style.less'; import RouterLink from './RouterLink'; class Sidebar extends React.Component { constructor(props) { super(props); this.state = { top: 64, bottom: 0, }; } componentDidMount() { window.addEventListener('scroll', this.onScroll); this.onScroll(); } get style() { return { top: this.state.top + 'px', bottom: this.state.bottom + 'px', }; } get base() { return this.props.lang ? `/${this.props.lang}/` : '/'; } // Fixed sidebar onScroll = () => { const { pageYOffset: offset } = window; this.setState({ top: Math.max(0, 64 - offset), }); }; render() { const { navConfig } = this.props; return ( <div className='wgoo-doc-nav' style={this.style}> {navConfig.map((group, index) => { return ( <div key={index} className='wgoo-doc-nav__group'> <div className='wgoo-doc-nav__title'>{group.title}</div> {group.items && group.items.map((item, groupIndex) => { return ( <div key={groupIndex} className='wgoo-doc-nav__item'> <RouterLink item={item} base={this.base} /> </div> ); })} </div> ); })} </div> ); } } export default Sidebar;