An advanced Ethereum/EVM mobile wallet
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
alpha-wallet-ios/Trust/UI/ErrorView.swift

69 lines
2.0 KiB

7 years ago
// Copyright SIX DAY LLC, Inc. All rights reserved.
import Foundation
import UIKit
import StatefulViewController
7 years ago
class ErrorView: UIView {
7 years ago
let label = UILabel()
let imageView = UIImageView()
let button = Button(size: .normal, style: .solid)
let insets: UIEdgeInsets
7 years ago
var onRetry: (() -> Void)? = .none
init(
message: String = "Failed",
image: UIImage? = .none,
insets: UIEdgeInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0),
onRetry: (() -> Void)? = .none
) {
self.onRetry = onRetry
self.insets = insets
7 years ago
super.init(frame: .zero)
7 years ago
backgroundColor = .white
7 years ago
label.translatesAutoresizingMaskIntoConstraints = false
label.text = message
7 years ago
imageView.translatesAutoresizingMaskIntoConstraints = false
imageView.image = image
7 years ago
button.translatesAutoresizingMaskIntoConstraints = false
button.setTitle("Retry", for: .normal)
button.addTarget(self, action: #selector(retry), for: .touchUpInside)
7 years ago
let stackView = UIStackView(arrangedSubviews: [label, imageView, button])
stackView.translatesAutoresizingMaskIntoConstraints = false
stackView.alignment = .center
stackView.axis = .vertical
stackView.spacing = 10
7 years ago
addSubview(stackView)
7 years ago
NSLayoutConstraint.activate([
stackView.trailingAnchor.constraint(equalTo: trailingAnchor),
stackView.leadingAnchor.constraint(equalTo: leadingAnchor),
stackView.centerXAnchor.constraint(equalTo: centerXAnchor),
stackView.centerYAnchor.constraint(equalTo: centerYAnchor),
button.widthAnchor.constraint(equalToConstant: 160),
7 years ago
])
}
7 years ago
func retry() {
onRetry?()
}
7 years ago
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
extension ErrorView: StatefulPlaceholderView {
func placeholderViewInsets() -> UIEdgeInsets {
return insets
}
}