openreplay/tracker/tracker-reactnative/ios/ReactNativeORTouchViewManager.swift
Delirium eff22eb554
tracker (rn): sessionID method for react native connector
* tracker: rm env var

tracker: fix some ios react native issues, add sessionid method

* change(react-native): android native method to get sessionId

* change(react-native): android version jump

* change(react-native): android use promise

* tracker: clearing logs

---------

Co-authored-by: Shekar Siri <sshekarsiri@gmail.com>
2024-12-02 17:57:28 +01:00

45 lines
1.3 KiB
Swift

import Openreplay
import React
@objc(RnTrackerTouchViewManager)
class RnTrackerTouchViewManager: RCTViewManager {
override func view() -> (RntrackerTouchView) {
return RntrackerTouchView()
}
@objc override static func requiresMainQueueSetup() -> Bool {
return true
}
}
class RntrackerTouchView : UIView {
var touchStart: CGPoint?
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
super.touchesBegan(touches, with: event)
if let touch = touches.first {
touchStart = touch.location(in: self)
}
}
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
super.touchesEnded(touches, with: event)
guard let touch = touches.first, let startPoint = touchStart else { return }
let endPoint = touch.location(in: self)
let deltaX = endPoint.x - startPoint.x
let deltaY = endPoint.y - startPoint.y
let distance = sqrt(deltaX * deltaX + deltaY * deltaY)
if distance > 10 {
let direction = abs(deltaX) > abs(deltaY) ? (deltaX > 0 ? "right" : "left") : (deltaY > 0 ? "down" : "up")
Analytics.shared.sendSwipe(label: "React-Native View", x: UInt64(endPoint.x), y: UInt64(endPoint.x), direction: direction)
} else {
Analytics.shared.sendClick(label: "React-Native View", x: UInt64(endPoint.x), y: UInt64(endPoint.y))
}
}
}