# react-repeatable
**Repository Path**: mirrors_cheton/react-repeatable
## Basic Information
- **Project Name**: react-repeatable
- **Description**: A press and hold wrapper component that can trigger hold action multiple times while holding down.
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-08-08
- **Last Updated**: 2026-06-06
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# react-repeatable [](https://travis-ci.org/cheton/react-repeatable) [](https://coveralls.io/github/cheton/react-repeatable?branch=master)
[](https://nodei.co/npm/react-repeatable/)
A press and hold wrapper component that can trigger hold action multiple times while holding down.
Demo: https://cheton.github.io/react-repeatable
## Installation
```
npm install --save react-repeatable
```
## Usage
```jsx
{
// Callback fired when the mousedown or touchstart event is triggered.
}}
onHoldStart={() => {
// Callback fired once before the first hold action.
}}
onHold={() => {
// Callback fired mutiple times while holding down.
}}
onHoldEnd={() => {
// Callback fired once after the last hold action.
}}
onRelease={(event) => {
// Callback fired when the mouseup, touchcancel, or touchend event is triggered.
}}
>
Press Me
```
### Repeatable Button
```jsx
const RepeatableButton = ({ onClick, ...props }) => (
);
```
## API
### Sequence of Events
#### Hold action is occurred
onPress -> onHoldStart -> onHold (once or more) -> onHoldEnd -> onRelease
#### Hold action is not occurred
onPress -> onRelease
### Properties
Name | Type | Default | Description
:--- | :--- | :------ | :----------
tag | element | 'div' | A custom element for this component.
disabled | Boolean | false | Set it to true to disable event actions.
repeatDelay | Number | 500 | The time (in milliseconds) to wait before the first hold action is being triggered.
repeatInterval | Number | 32 | The time interval (in milliseconds) on how often to trigger a hold action.
repeatCount | Number | 0 | The number of times the hold action will take place. A zero value will disable the repeat counter.
onPress | Function(event) | | Callback fired when the mousedown or touchstart event is triggered.
onHoldStart | Function() | | Callback fired once before the first hold action.
onHold | Function() | | Callback fired mutiple times while holding down.
onHoldEnd | Function() | | Callback fired once after the last hold action.
onRelease | Function(event) | | Callback fired when the mouseup, touchcancel, or touchend event is triggered.
## License
MIT