UNPKG

r-layout

Version:

Layout made simple. Screw CSS!

104 lines (96 loc) 4.08 kB
"use strict"; window.__debugLayout = false; var React = require('react/addons'), {Layout, resizeMixin, Spacer} = require('../src/index'), Simple = require('./Simple'), LongChild = require('./LongChild'), BasicLayoutTest = require('./BasicLayoutTest'); var RefCopyTest = require('./debugTests/RefCopyTest'), CenterSpacerSize = require('./debugTests/CenterSpacerSizeTest'), MatchChildTest = require('./debugTests/MatchChildTest'), PerformanceTest = require('./debugTests/PerformanceTest'), PassPropsTest = require('./debugTests/passPropsToInnerContainer'), AbsolutelyFreeTest = require('./debugTests/AbsolutelyFreeTest'); var ShowcaseContainer = React.createClass({ render() { return ( <Layout {...this.props}> <Layout size="50px"> <button onClick={() => this.props.switchView("root")}>Back</button> </Layout> <Layout> {this.props.show} </Layout> </Layout> ); } }); var Root = React.createClass({ render() { var debugTestViews; if (this.props.showDebug) { debugTestViews = <Layout> <button onClick={() => this.props.switchView("refCopyTest")}>refCopyTest</button><br/> <button onClick={() => this.props.switchView("centerSpacerSize")}>centerSpacerSize</button><br/> <button onClick={() => this.props.switchView("PassPropsTest")}>PassPropsTest</button><br/> <button onClick={() => this.props.switchView("PerformanceTest")}>PerformanceTest</button><br/> <button onClick={() => this.props.switchView("MatchChildTest")}>MatchChildTest</button><br/> <button onClick={() => this.props.switchView("AbsolutelyFreeTest")}>AbsolutelyFreeTest</button><br/> </Layout>; } return ( <Layout {...this.props}> <Layout size="100px"> <h1>Choose example:</h1> </Layout> <Layout> <button onClick={() => this.props.switchView("simple")}>Simple layout</button> Using composed layout elements<br/> <button onClick={() => this.props.switchView("basicTest")}>Basic test layout</button> Only using 'Layout'<br/> <button onClick={() => this.props.switchView("longChild")}>Long child</button> Example with a child thats longer than the parent<br/> </Layout> {debugTestViews} </Layout> ); } }); var App = React.createClass({ mixins: [resizeMixin], getInitialState() { return { current: "root" }; }, goBack() { this.setState({ current: "root" }); }, switchView(view) { this.setState({ current: view }); }, render() { var show = { root: Root, simple: <Simple />, longChild: <LongChild />, basicTest: <BasicLayoutTest />, refCopyTest: <RefCopyTest />, centerSpacerSize: <CenterSpacerSize />, PassPropsTest: <PassPropsTest />, PerformanceTest: <PerformanceTest />, MatchChildTest: <MatchChildTest />, AbsolutelyFreeTest: <AbsolutelyFreeTest />, }[this.state.current]; if (this.state.current === "root") { show = <Root switchView={this.switchView} showDebug={window.__debugLayout}/>; } else { show = <ShowcaseContainer switchView={this.switchView} show={show} />; } return ( /* The root instance needs a fixes height and width */ <Layout calculatedWidth={window.innerWidth} calculatedHeight={window.innerHeight}> {show} </Layout> ); } }); React.render(<App />, document.querySelector('body'));