66 lines
2.2 KiB
Swift
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
|
|
}
|
|
}
|