@wgoo/cli
Version:
Wgoo Cli 是一个 React 组件库构建工具,通过 Wgoo Cli 可以快速搭建一套功能完备的 React 组件库。
65 lines (55 loc) • 1.42 kB
JSX
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;