1.0.1 • Published 3 years ago

@feizheng/react-layout-trbla v1.0.1

Weekly downloads
2
License
MIT
Repository
github
Last release
3 years ago

react-layout-trbla

Simply trbla layout for react.

version license size download

installation

npm install -S @feizheng/react-layout-trbla

update

npm update @feizheng/react-layout-trbla

properties

NameTypeRequiredDefaultDescription
classNamestringfalse-The extended className for component.
nodeNameanyfalse'div'The container tag name.
valueenumfalse-The layout type.

layouts

valuedescription
laleft -> auto
larleft -> auto -> right
arauto -> right
lrleft -> right or justify
tatop -> auto
tabtop -> auto -> bottom
abauto -> bottom
tbtop -> bottom or justify

usage

  1. import css

    @import "~@feizheng/react-layout-trbla/dist/style.scss";
    
    // customize your styles:
    $react-layout-trbla-options: ()
  2. import js

    import ReactDemokit from '@feizheng/react-demokit';
    import React from 'react';
    import ReactDOM from 'react-dom';
    import ReactLayoutTrbla from '@feizheng/react-layout-trbla';
    import './assets/style.scss';
    
    const LAYOUT_MAPPING = {
      'la': 'left -> auto',
      'lar': 'left -> auto -> right',
      'ar': 'auto -> right',
      'lr': 'left -> right or justify',
      'ta': 'top -> auto',
      'tab': 'top -> auto -> bottom',
      'ab': 'auto -> bottom',
      'tb': 'top -> bottom or justify'
    };
    
    class App extends React.Component {
      state = {
        layouts: ReactLayoutTrbla.layouts,
        value: 'la'
      };
    
      get valueCount() {
        return this.state.value.length;
      }
    
      render() {
        const { value } = this.state;
        return (
          <ReactDemokit
            className="p-3 app-container"
            url="https://github.com/afeiship/react-layout-trbla">
            <div className="text-center ">
              <label htmlFor="sel" className="mr-10 text-white">
                Select a value:
              </label>
              <select
                id="sel"
                className="p-3"
                onChange={(e) => {
                  this.setState({ value: e.target.value });
                }}>
                {this.state.layouts.map((item) => (
                  <option key={item}>{item}</option>
                ))}
              </select>
            </div>
            <h1
              className="text-center text-white"
              style={{ fontSize: 100 }}>
              {LAYOUT_MAPPING[value]}
            </h1>
            <ReactLayoutTrbla value={value} className="mb-3">
              <div>start</div>
              <div>auto</div>
              {(this.valueCount === 3 || value === 'lr' || value === 'tb') && (
                <div>end</div>
              )}
            </ReactLayoutTrbla>
          </ReactDemokit>
        );
      }
    }
    
    ReactDOM.render(<App />, document.getElementById('app'));

documentation

license

Code released under the MIT license.