Last active
January 18, 2017 08:46
-
-
Save leefsmp/0dc99af3505d259506cdec74a4c18bc7 to your computer and use it in GitHub Desktop.
Re-Flex Demo advanced
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
///////////////////////////////////////////////////////// | |
// Re-Flex advanced multi-nested resizable layout | |
// with event listeners | |
// | |
///////////////////////////////////////////////////////// | |
class ReflexAdvancedDemo | |
extends React.Component { | |
constructor () { | |
super() | |
this.resizeProps = { | |
onStopResize: this.onStopResize.bind(this), | |
onResize: this.onResize.bind(this) | |
} | |
} | |
onResize (e) { | |
if (e.domElement) { | |
e.domElement.classList.add('resizing') | |
} | |
} | |
onStopResize (e) { | |
if (e.domElement) { | |
e.domElement.classList.remove('resizing') | |
} | |
} | |
render () { | |
return ( | |
<ReflexContainer orientation="horizontal"> | |
<ReflexElement className="header" flex={0.1}> | |
<div className="pane-content"> | |
<label> | |
Header (fixed) | |
</label> | |
</div> | |
</ReflexElement> | |
<ReflexElement> | |
<ReflexContainer orientation="vertical"> | |
<ReflexElement {...this.resizeProps}> | |
<ReflexContainer orientation="horizontal"> | |
<ReflexElement {...this.resizeProps}> | |
<div className="pane-content"> | |
<div style={{height: '30%'}}/> | |
<label style={{height: '0%'}}> | |
Left Pane <br/> Top | |
<br/> | |
(splitter propagation) | |
</label> | |
</div> | |
</ReflexElement> | |
<ReflexSplitter propagate={true} {...this.resizeProps}/> | |
<ReflexElement {...this.resizeProps}> | |
<div className="pane-content"> | |
<div style={{height: '30%'}}/> | |
<label style={{height: '0%'}}> | |
Left Pane <br/> Middle | |
<br/> | |
(splitter propagation) | |
</label> | |
</div> | |
</ReflexElement> | |
<ReflexSplitter propagate={true} {...this.resizeProps}/> | |
<ReflexElement {...this.resizeProps}> | |
<div className="pane-content"> | |
<div style={{height: '30%'}}/> | |
<label style={{height: '0%'}}> | |
Left Pane <br/> Bottom | |
<br/> | |
(splitter propagation) | |
</label> | |
</div> | |
</ReflexElement> | |
</ReflexContainer> | |
</ReflexElement> | |
<ReflexSplitter {...this.resizeProps}/> | |
<ReflexElement flex={0.5} {...this.resizeProps}> | |
<div className="pane-content"> | |
<label> | |
Middle Pane | |
</label> | |
</div> | |
</ReflexElement> | |
<ReflexSplitter{...this.resizeProps}/> | |
<ReflexElement {...this.resizeProps}> | |
<ReflexContainer orientation="horizontal"> | |
<ReflexElement {...this.resizeProps}> | |
<div> | |
<ReflexContainer orientation="vertical"> | |
<ReflexElement {...this.resizeProps}> | |
<div className="pane-content"> | |
<label> | |
Right Pane <br/> Upper-Left | |
</label> | |
</div> | |
</ReflexElement> | |
<ReflexSplitter/> | |
<ReflexElement {...this.resizeProps}> | |
<div className="pane-content"> | |
<label> | |
Right Pane <br/> Upper-Right | |
</label> | |
</div> | |
</ReflexElement> | |
</ReflexContainer> | |
</div> | |
</ReflexElement> | |
<ReflexSplitter {...this.resizeProps}/> | |
<ReflexElement {...this.resizeProps}> | |
<div className="pane-content"> | |
<label> | |
Right Pane <br/> Bottom | |
</label> | |
</div> | |
</ReflexElement> | |
</ReflexContainer> | |
</ReflexElement> | |
</ReflexContainer> | |
</ReflexElement> | |
<ReflexElement className="footer" flex={0.1}> | |
<div className="pane-content"> | |
<label> | |
Footer (fixed) | |
</label> | |
</div> | |
</ReflexElement> | |
</ReflexContainer> | |
) | |
} | |
} | |
ReactDOM.render(<ReflexAdvancedDemo/>, | |
document.getElementById('demo-advanced')) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment