// // CryptoChatViewCreateChat.swift // Wallet // // Created by Saveliy Stavitsky on 8/27/20. // Copyright © 2020 List. All rights reserved. // import UIKit import EosioSwift import Combine final class CryptoChatViewCreateChat: CommonViewCustom, CommonTextFieldDelegate { @IBOutlet private var textField: CommonTextField! @IBOutlet private var submitButton: CommonButtonAction! private let usernameSubject = PassthroughSubject() lazy var succeedPublisher: AnyPublisher = self.usernameSubject.eraseToAnyPublisher() @IBAction private func onSubmit(_ : AnyObject?) { let username = textField.value.lowercased().trimmingCharacters(in: CharacterSet.whitespaces) guard username.count > 0, username != Accounts().current?.name else { return } let environment = ApplicationEnvironment.shared().current guard let node = environment.node, let url = URL(string: node) else { self.textField.error = L10n.CryptoChat.Chats.createTextFieldError return } EosioRpcProvider(endpoint: url, headers: environment.headers) .getAccount(requestParameters: EosioRpcAccountRequest(accountName: username), completion: { [weak self] in switch $0 { case .success: self?.usernameSubject.send(username) case let .failure(error): self?.textField.error = L10n.CryptoChat.Chats.createTextFieldError print(error) } }) } override func setup() { super.setup() self.textField.lzTitle = L10n.CryptoChat.Chats.createTextFieldTitle self.textField.lzPlaceholder = L10n.CryptoChat.Chats.createTextFieldTitle self.textField.delegate = self self.submitButton.isEnabled = false } // MARK: - CommonTextFieldDelegate func textFieldDidSubmit(_ textField: CommonTextField) { self.onSubmit(nil) } func textFieldDidChange(_ textField: CommonTextField) { self.submitButton.isEnabled = !textField.value.isEmpty textField.error = nil } }