From f191ba6e6990fec3f973ee78f75547e5a828785a Mon Sep 17 00:00:00 2001 From: Fabio Berger <me@fabioberger.com> Date: Wed, 7 Mar 2018 10:50:51 +0100 Subject: hide sidebar scrollbar unless onHover --- .../react-docs/src/ts/components/documentation.tsx | 23 +++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'packages/react-docs/src/ts/components/documentation.tsx') diff --git a/packages/react-docs/src/ts/components/documentation.tsx b/packages/react-docs/src/ts/components/documentation.tsx index 8db9b34b4..58523a1a9 100644 --- a/packages/react-docs/src/ts/components/documentation.tsx +++ b/packages/react-docs/src/ts/components/documentation.tsx @@ -54,12 +54,20 @@ export interface DocumentationProps { topBarHeight?: number; } -export interface DocumentationState {} +export interface DocumentationState { + isHoveringSidebar: boolean; +} export class Documentation extends React.Component<DocumentationProps, DocumentationState> { public static defaultProps: Partial<DocumentationProps> = { topBarHeight: 0, }; + constructor(props: DocumentationProps) { + super(props); + this.state = { + isHoveringSidebar: false, + }; + } public componentDidUpdate(prevProps: DocumentationProps, prevState: DocumentationState) { if (!_.isEqual(prevProps.docAgnosticFormat, this.props.docAgnosticFormat)) { const hash = window.location.hash.slice(1); @@ -106,7 +114,10 @@ export class Documentation extends React.Component<DocumentationProps, Documenta ...styles.menuContainer, ...styles.mainContainers, height: `calc(100vh - ${this.props.topBarHeight}px)`, + overflow: this.state.isHoveringSidebar ? 'auto' : 'hidden', }} + onMouseEnter={this._onSidebarHover.bind(this)} + onMouseLeave={this._onSidebarHoverOff.bind(this)} > <NestedSidebarMenu selectedVersion={this.props.selectedVersion} @@ -338,4 +349,14 @@ export class Documentation extends React.Component<DocumentationProps, Documenta /> ); } + private _onSidebarHover(event: React.FormEvent<HTMLInputElement>) { + this.setState({ + isHoveringSidebar: true, + }); + } + private _onSidebarHoverOff() { + this.setState({ + isHoveringSidebar: false, + }); + } } -- cgit