//
//  TinkEventEmitter.swift
//  react-native-tink-sdk
//
//  Created by Imran MENTESE on 22/02/2024.
//

import Foundation

@objc(TinkEventEmitter)
class TinkEventEmitter: RCTEventEmitter {
    private var hasListeners: Bool = false
    public static var emitter: RCTEventEmitter!
    public static let shared = TinkEventEmitter()
    
    override init() {
        super.init()
        TinkEventEmitter.emitter = self
    }
    
    override static func requiresMainQueueSetup() -> Bool {
        return true
    }

    override func supportedEvents() -> [String]! {
        return [
            NativeEvents.userPressedBack.name
        ]
    }
    
    override func startObserving() {
        print("Tink ReactNative EventEmitter startObserving")

        hasListeners = true
        super.startObserving()
    }

    override func stopObserving() {
        print("Tink ReactNative EventEmitter stopObserving")

        hasListeners = false
        super.stopObserving()
    }
    
    func sendEventToJS(eventName: String, content: Any?) {
        self.sendEvent(withName: eventName, body: content)
    }
}
