diff options
Diffstat (limited to 'modules/expo-emoji-picker/ios/EmojiPickerView.swift')
-rw-r--r-- | modules/expo-emoji-picker/ios/EmojiPickerView.swift | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/modules/expo-emoji-picker/ios/EmojiPickerView.swift b/modules/expo-emoji-picker/ios/EmojiPickerView.swift new file mode 100644 index 000000000..65089a2af --- /dev/null +++ b/modules/expo-emoji-picker/ios/EmojiPickerView.swift @@ -0,0 +1,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 + ]) + } +} |