about summary refs log tree commit diff
path: root/modules/expo-emoji-picker/ios/EmojiPickerView.swift
blob: 65089a2af64093f50b296cfe9fbcad9bc12246ad (plain) (blame)
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
import ExpoModulesCore
import WebKit
import MCEmojiPicker

class EmojiPickerView: ExpoView, MCEmojiPickerDelegate {
  let onEmojiSelected = EventDispatcher()

  override func layoutSubviews() {
    let tapGesture = UITapGestureRecognizer(target: self, action: #selector(handleTap(_:)))
    self.addGestureRecognizer(tapGesture)
  }

  @objc func handleTap(_ gesture: UITapGestureRecognizer) {
    presentEmojiPicker()
  }

  func presentEmojiPicker() {
    let emojiPicker = MCEmojiPickerViewController()
    let reactRootVC = reactViewController()
    emojiPicker.sourceView = self
    emojiPicker.delegate = self
    reactRootVC?.present(emojiPicker, animated: true)
  }

  func didGetEmoji(emoji: String) {
    onEmojiSelected([
      "emoji": emoji
    ])
  }
}