1.0.0 • Published 3 years ago

@jswork/react-isolate-event-container v1.0.0

Weekly downloads
1,456
License
MIT
Repository
github
Last release
3 years ago

react-isolate-event-container

A container that prevents certain events from propagating outside of the container.

version license size download

installation

npm install -S @jswork/react-isolate-event-container

properties

NameTypeRequiredDefaultDescription
classNamestringfalse-The extended className for component.
itemsarrayfalse[]React events list.

usage

  1. import css

    @import "~@jswork/react-isolate-event-container/dist/style.css";
    
    // or use sass
    @import "~@jswork/react-isolate-event-container/dist/style.scss";
    
    // customize your styles:
    $react-isolate-event-container-options: ()
  2. import js

    import ReactDemokit from '@jswork/react-demokit';
    import React from 'react';
    import ReactDOM from 'react-dom';
    import ReactIsolateEventContainer from '@jswork/react-isolate-event-container';
    import './assets/style.scss';
    
    class App extends React.Component {
      handleClick = (e) => {
        console.log('inner click1');
      };
    
      handleOutterClick = (e) => {
        console.log('outter click2');
      };
    
      handleCntClick = (e) => {
        console.log('container click3');
      };
    
      render() {
        return (
          <ReactDemokit
            className="p-3 app-container"
            url="https://github.com/afeiship/react-isolate-event-container">
            <div className="isolated" onClick={this.handleOutterClick}>
              <ReactIsolateEventContainer items={['onClick']}>
                <button className="button is-primary" onClick={this.handleClick}>
                  I am isolated
                </button>
              </ReactIsolateEventContainer>
            </div>
    
            <div className="no-isolated" onClick={this.handleOutterClick}>
              <button className="button is-info" onClick={this.handleClick}>
                I am not isolated
              </button>
            </div>
          </ReactDemokit>
        );
      }
    }
    
    ReactDOM.render(<App />, document.getElementById('app'));

documentation

license

Code released under the MIT license.