popup-dispatcher

0.0.1 • Public • Published

popup-dispatcher

Incapsulation of mouse and time wathchers to hide popup controls or windows on web page

Travis build status Code Climate Test Coverage Dependency Status devDependency Status

SYNOPSIS

class Dropdown extends React.Component {
  static defaultProps = {
    items: ['item1', 'item2', 'item3'],
  }
  constructor(props){
    super(props)
    this.state = {
      opened: false,
      current: '...'
    }
    this.disp = new PopupDispatcher
    this.disp.on('done', () => this.setState({opened:false}) )
  }
 
  handleClick = () => {
    this.setState({ opened: ! this.state.opened })
  }
 
  handleSelect = (item) => {
    this.setState({current: item}),
    this.disp.finish()
  }
 
  render() {
    if( this.state.opened ) this.disp.start()
    return (
      <div>
 
        <{...this.disp.props({})} onClick={this.handleClick}>
          <span>{this.state.current}</span>
        </a>
 
        <ul {...this.disp.props({onMouseOver:()=>console.log('we need this handler too')})}>
          { this.props.items.map( (item,i) => (
            <li onClick={()=> this.handleSelect(item)}>
              <a href="#">{item}</a>
            </li>
          ) ) }
        </ul>
 
      </div>
    )
  }
}

Methods

  • start() - enable
  • stop() - disable
  • watch() - begin watch timer, called from onMouseOut() returned by props()
  • unwatch() - cancel watch timer, called from onMouseOver() returned by props()
  • props() - props filter for component to watch

Readme

Keywords

none

Package Sidebar

Install

npm i popup-dispatcher

Weekly Downloads

0

Version

0.0.1

License

MIT

Last publish

Collaborators

  • oklas