Files
raspberry/iOS/Wallet/Sources/Common/Empty/CommonViewEmptyContainer.swift
2022-06-03 16:55:25 +03:00

82 lines
2.0 KiB
Swift

//
// CommonViewEmptyContainer.swift
// Wallet
//
// Created by Igor on 04.03.2021.
// Copyright © 2021 AM. All rights reserved.
//
import UIKit
class CommonViewEmptyContainer: UIView {
@IBOutlet private weak var contentView: UIView!
@IBOutlet weak var loadingView: UIView?
let emptyView = CommonViewEmpty()
var isEmpty = false {
didSet { update() }
}
var isLoading = false {
didSet { update() }
}
override init(frame: CGRect) {
super.init(frame: frame)
setup()
}
required init?(coder: NSCoder) {
super.init(coder: coder)
setup()
}
private func setup() {
emptyView.frame = CGRect(x: 0, y: 0, width: frame.width, height: frame.height)
emptyView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
emptyView.translatesAutoresizingMaskIntoConstraints = true
emptyView.alpha = 0
addSubview(emptyView)
}
@IBInspectable var image: UIImage? {
get { emptyView.image }
set { emptyView.image = newValue }
}
@IBInspectable var title: String? {
get { emptyView.title }
set { emptyView.title = newValue }
}
@IBInspectable var text: String? {
get { emptyView.text }
set { emptyView.text = newValue }
}
var action: CommonMenuAction? {
get { emptyView.action }
set { emptyView.action = newValue }
}
private func update() {
bringSubviewToFront(emptyView)
if isLoading {
Loader.show(in: loadingView ?? self)
UIView.animate(withDuration: Animation.slow) {
self.emptyView.alpha = 0
self.contentView.alpha = 0
}
} else {
Loader.hide(in: loadingView ?? self)
UIView.animate(withDuration: Animation.slow) {
self.emptyView.alpha = self.isEmpty ? 1 : 0
self.contentView.alpha = self.isEmpty ? 0 : 1
}
}
}
}