JedWatson / react-tappable

Tappable component for React
http://jedwatson.github.io/react-tappable/
MIT License
862 stars 90 forks source link

onMouseOut doesn't fire #78

Open slorber opened 8 years ago

slorber commented 8 years ago

source:

    onMouseOut: function (event) {
        if (window._blockMouseEvents || !this._mouseDown) return;
        this.processEvent(event);
        this.props.onMouseOut && this.props.onMouseOut(event);
        this.endMouseEvent();
    },

If I have <Tappable otherThings... onMouseOut={callback}/>, the callback will never be fired on mouse out, because !this._mouseDown is false. I think this is unexpected no?

aarosil commented 8 years ago

I'm also interested in the reason for this. Would be happy to work on a PR to fix if I understand the cases.

MilllerTime commented 8 years ago

Can confirm this is an issue. I was able to work around it by adding the onMouseOut event to a child component of Tappable but that isn't a nice solution, and straight up won't work for a lot of use cases.

onMouseOut should fire whether the mouse is currently down or not. Is there a technical reason for the !this._mouseDown check?

Today's state of devices means that touch/mouse support is needed in unison, making this a pretty important issue imo.

dcousens commented 7 years ago

PRs welcome, but please add an example with instructions for testing