<Pointable /> (obsolete as of React 16.4.0)
Migrating to React 16.4+
As of React 16.4.0, pointer events are now supported out of the box! Custom DOM attributes are also supported, meaning React works well with PEP in browsers that don't natively support pointer events. This component still works well pre React 16.4, but if you're upgrading it is simple to remove this component from your code. You can replace any instances of the<Pointable>
component with a native DOM element.
```javascript
// For example, this:
alert('Touched!')}>
Touch me
// becomes this:
alert('Touched!')}>
Touch me
```
Purpose
- Allows using pointer events with React < 16.4.
- Compatible with the official pointer events polyfill and its
touch-action
workaround.
- Internal event listeners are kept up-to-date as pointer event handlers come and go.
- Customizable wrapper element.
Installation
``` npm install --save react-pointable ```Usage
By default, a<Pointable />
component renders a <div>
and passes through any non-pointer event props like className
, style
, etc. Any pointer event props will just work as expected.
When using <Pointable />
for interactive elements, this makes managing pointer events easy:
```javascript
import Pointable from 'react-pointable';
alert('Touched!')}>
Touch me
```
Composing is also easy:
```javascript
const HairTrigger = ({ onTouch, disabled, children, ...otherProps }) => (
{children}
);
```
All pointer events are supported:
onPointerMove
, onPointerDown
, onPointerUp
, onPointerOver
, onPointerOut
, onPointerEnter
, onPointerLeave
, onPointerCancel
Additional Props
<Pointable />
accepts special non-pointer event props:
tagName [string = 'div']
- If you don't want a<div />
to be rendered, you can pass any valid element type and it will be rendered instead.
touchAction [string = 'auto']
- When used with PEP in a browser that doesn't support pointer events, chances are the CSS propertytouch-action
also isn't supported. PEP therefore supports atouch-action
attribute, and this prop allows setting that in a fully declarative manner. You can read more about the PEP attribute on its repo.
elementRef [function]
- Provides the generated element to a parent component. (optional)