redoc/src/components/SideMenu/SideMenu.tsx

35 lines
980 B
TypeScript
Raw Normal View History

2017-11-21 17:55:20 +03:00
import { ComponentWithOptions } from '../OptionsProvider';
2017-10-12 00:01:37 +03:00
import * as React from 'react';
import { observer } from 'mobx-react';
import { MenuStore, IMenuItem } from '../../services/MenuStore';
import { MenuItems } from './MenuItems';
2017-10-12 00:01:37 +03:00
import { PerfectScrollbar } from '../../common-elements/perfect-scrollbar';
@observer
2017-11-21 17:55:20 +03:00
export class SideMenu extends ComponentWithOptions<{ menu: MenuStore }> {
2017-10-12 00:01:37 +03:00
render() {
const store = this.props.menu;
2017-11-21 17:55:20 +03:00
const nativeScrollbars = this.options.nativeScrollbars;
return nativeScrollbars ? (
<MenuItems
style={{
overflow: 'auto',
'-ms-overflow-style': '-ms-autohiding-scrollbar',
}}
items={store.items}
onActivate={this.activate}
/>
) : (
2017-10-12 00:01:37 +03:00
<PerfectScrollbar>
<MenuItems items={store.items} onActivate={this.activate} />
</PerfectScrollbar>
);
}
activate = (item: IMenuItem) => {
this.props.menu.activateAndScroll(item, true);
2017-10-12 00:01:37 +03:00
};
}