SP1.2: Invite to Space in room landing element-ios#5225

- Check user permissions to invite people
This commit is contained in:
Gil Eluard
2022-01-26 10:17:42 +01:00
parent d23f24b9ce
commit fb89b0092e
7 changed files with 129 additions and 40 deletions
@@ -21,14 +21,17 @@ class OptionListItemViewData {
let detail: String?
let image: UIImage?
let accessoryImage: UIImage?
let enabled: Bool
init(title: String? = nil,
detail: String? = nil,
image: UIImage? = nil,
accessoryImage: UIImage? = Asset.Images.chevron.image) {
accessoryImage: UIImage? = Asset.Images.chevron.image,
enabled: Bool = true) {
self.title = title
self.detail = detail
self.image = image
self.accessoryImage = accessoryImage
self.enabled = enabled
}
}
@@ -26,6 +26,12 @@ class OptionListViewCell: UITableViewCell, NibReusable {
@IBOutlet private weak var detailLabel: UILabel!
@IBOutlet private weak var selectionView: UIView!
@IBOutlet private weak var chevronView: UIImageView!
var isEnabled: Bool = true {
didSet {
self.contentView.alpha = isEnabled ? 1 : 0.3
}
}
// MARK: - Private
@@ -42,10 +48,12 @@ class OptionListViewCell: UITableViewCell, NibReusable {
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
if isEnabled {
super.setSelected(selected, animated: animated)
UIView.animate(withDuration: animated ? 0.2 : 0.0) {
self.selectionView.transform = selected ? .init(scaleX: 0.95, y: 0.95) : .identity
UIView.animate(withDuration: animated ? 0.2 : 0.0) {
self.selectionView.transform = selected ? .init(scaleX: 0.95, y: 0.95) : .identity
}
}
}
@@ -56,6 +64,7 @@ class OptionListViewCell: UITableViewCell, NibReusable {
self.titleLabel.text = viewData.title
self.detailLabel.text = viewData.detail
self.chevronView.image = viewData.accessoryImage?.withRenderingMode(.alwaysTemplate)
self.isEnabled = viewData.enabled
}
func update(theme: Theme) {
@@ -207,6 +207,8 @@ extension OptionListViewController: UITableViewDataSource {
extension OptionListViewController: UITableViewDelegate {
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
viewModel.process(viewAction: .selected(indexPath.row))
if options[indexPath.row].enabled {
viewModel.process(viewAction: .selected(indexPath.row))
}
}
}