-
Notifications
You must be signed in to change notification settings - Fork 1
/
index.js
53 lines (45 loc) · 1.16 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
/**
* react-native-multitap
*
* @author Anees Muzzafer Shah
* @copyright Eonyx Infotech LLP
* @link https://eonyx.io
*
*/
import React from "react";
import { Pressable } from "react-native";
var numTaps = 0;
const MultiTap = (props) => {
const {
delay = 200,
onSingleTap = () => {},
onDoubleTap = () => {},
onTripleTap = () => {},
onNTaps = () => {},
children,
} = props;
const handleTaps = () => {
if (numTaps === 0) {
setTimeout(() => {
switch (numTaps) {
case 1:
onSingleTap();
break;
case 2:
onDoubleTap();
break;
case 3:
onTripleTap();
break;
default:
onNTaps(numTaps);
break;
}
numTaps = 0;
}, delay);
}
numTaps++;
};
return <Pressable {...props} onPress={handleTaps}>{children}</Pressable>;
};
export default MultiTap;