1. import { Data, Override } from "framer"
    2. const state = Data({
    3. doubleTapIndex: 0,
    4. doubleTapTimer: setTimeout(null, null),
    5. longPress: false,
    6. longPressTimer: setTimeout(null, null),
    7. })
    8. export function doubleTap(): Override {
    9. return {
    10. whileTap: {
    11. scale: 0.95,
    12. },
    13. onTap() {
    14. if (state.doubleTapIndex === 1) {
    15. clearTimeout(state.doubleTapIndex)
    16. console.log("Double Tap")
    17. } else if (state.doubleTapIndex <= 1) {
    18. state.doubleTapIndex = state.doubleTapIndex + 1
    19. // Start a timer to cancel the double tap after 1s
    20. state.doubleTapTimer = setTimeout(() => {
    21. state.doubleTapIndex = 0
    22. state.doubleTapTimer = null
    23. }, 1000)
    24. }
    25. },
    26. }
    27. }
    28. export function longPress(): Override {
    29. return {
    30. whileTap: {
    31. scale: 0.95,
    32. },
    33. onTapStart() {
    34. // Start a timer to trigger the long press after 1s
    35. state.longPressTimer = setTimeout(() => {
    36. state.longPress = true
    37. console.log("Long Press")
    38. }, 1000)
    39. },
    40. onTap() {
    41. if (state.longPress === true) {
    42. console.log("Long Press End")
    43. } else {
    44. clearTimeout(state.longPressTimer)
    45. }
    46. // Reset the long press state
    47. state.longPress = false
    48. },
    49. }
    50. }