react-point gives you fast touch events for your React applications.
A <PointTarget> normalizes click and click-like touch events (not swipes or drags) into a "point" event. This helps you avoid the 300ms delay for click events on touch interfaces like iOS.
Using yarn:
$ yarn add react-point
Then, use as you would anything else:
// using ES6 modules
import PointTarget from 'react-point'
// using CommonJS modules
var PointTarget = require('react-point')The UMD build is also available on unpkg:
<script src="https://unpkg.com/react-point/umd/react-point.min.js"></script>You can find the library on window.ReactPoint.
Just render a <PointTarget> component and give it an onPoint function to call whenever the user clicks or taps the element.
import React from 'react'
import PointTarget from 'react-point'
class App extends React.Component {
handlePoint = () => {
alert('I was clicked or tapped!')
}
render() {
return (
<PointTarget onPoint={this.handlePoint}/>
)
}
}By default, a <PointTarget> renders a <button> for accessibility. However, you can use the children prop to make it render something else. For example, to render a <div>:
import React from 'react'
import PointTarget from 'react-point'
class App extends React.Component {
handlePoint = () => {
alert('I was clicked or tapped!')
}
render() {
return (
<PointTarget onPoint={this.handlePoint}>
<div>Click or tap here</div>
</PointTarget>
)
}
}Note: The onClick, onTouchStart, onTouchMove, onTouchEnd, and onTouchCancel props will be overwritten because <PointTarget> needs them to do its thing).
react-point is developed and maintained by React Training. If you're interested in learning more about what React can do for your company, please get in touch!