Files
2023-03-10 11:23:56 +03:00

66 lines
2.2 KiB
Swift

//
// 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<String, Never>()
lazy var succeedPublisher: AnyPublisher<String, Never> = 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
}
}