47 lines
1.4 KiB
Swift
47 lines
1.4 KiB
Swift
//
|
|
// EmojiPickerWrapper.swift
|
|
// Tusker
|
|
//
|
|
// Created by Shadowfacts on 10/14/20.
|
|
// Copyright © 2020 Shadowfacts. All rights reserved.
|
|
//
|
|
|
|
import SwiftUI
|
|
import Pachyderm
|
|
|
|
struct EmojiPickerWrapper: UIViewControllerRepresentable {
|
|
typealias UIViewControllerType = EmojiPickerCollectionViewController
|
|
|
|
let searchQuery: String
|
|
|
|
@EnvironmentObject private var mastodonController: MastodonController
|
|
@EnvironmentObject private var uiState: ComposeUIState
|
|
|
|
func makeUIViewController(context: Context) -> EmojiPickerCollectionViewController {
|
|
let vc = EmojiPickerCollectionViewController(mastodonController: mastodonController)
|
|
vc.delegate = context.coordinator
|
|
return vc
|
|
}
|
|
|
|
func updateUIViewController(_ uiViewController: EmojiPickerCollectionViewController, context: Context) {
|
|
uiViewController.searchQuery = searchQuery
|
|
}
|
|
|
|
func makeCoordinator() -> Coordinator {
|
|
return Coordinator(uiState: uiState)
|
|
}
|
|
|
|
class Coordinator: EmojiPickerCollectionViewControllerDelegate {
|
|
let uiState: ComposeUIState
|
|
|
|
init(uiState: ComposeUIState) {
|
|
self.uiState = uiState
|
|
}
|
|
|
|
func selectedEmoji(_ emoji: Emoji) {
|
|
uiState.autocompleteHandler?.autocomplete(with: ":\(emoji.shortcode):")
|
|
uiState.autocompleteState = nil
|
|
}
|
|
}
|
|
}
|