New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

react-clickout

Package Overview
Dependencies
Maintainers
1
Versions
31
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-clickout

Higher Order Component providing clickout functionality for React components.

  • 3.0.8
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
54
decreased by-58.14%
Maintainers
1
Weekly downloads
 
Created
Source

React Clickout

Higher Order Component providing clickout functionality for React components.

Build Status npm version

Installation

With Yarn:

yarn add react-clickout

With NPM:

npm install react-clickout

Usage

react-clickout returns a Higher Order Component that wraps a provided component with the ability to detect a click event outside of that component.

Such a "clickout" event will call the wrapped component's handleClickout method. (Note the character casing.)

See the test suite for more detailed example usage.

import React, { Component } from 'react';
import wrapWithClickout from 'react-clickout';

class ToWrap extends Component {
  constructor() {
    ...
    this.state = {
      isVisible: true,
    };
  }
  handleClickout() {
    this.setState({
      isVisible: false,
    });
  }

  toggleVisible() {
    this.setState({
      isVisible: !this.state.isVisible,
    });
  }

  render() {
    return (
      <div className="to-wrap__container">

        {this.state.isVisible
          ?
            <div className="box" />
          :
            null
        }

        <button onClick={this.toggleVisible} >
          Toggle Box
        </button>

      </div>
    );
  }
}

export default wrapWithClickout(ToWrap);

Excluding elements from calling handleClickout

  • it is possible to prevent the handleClickout method from being called
  • the elements (outside the component wrapped with react-clickout) to be excluded should be marked with the data-react-clickout attribute with the value exclude
<div data-react-clickout="exclude" />

Details

  • React Clickout uses higher order functions (instead of using mixins)
  • React Clickout also uses callback refs (instead of ReactDOM.findDOMNode) (which will eventually be deprecated (see here and here))

Tests

With Yarn:

yarn run test

With NPM:

npm run test

Credits

Initially a fork from react-click-outside.

Thanks to Dan Abramov for the solution of using callback refs.

Licence

Apache-2.0

FAQs

Package last updated on 28 Dec 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc