import Foundation import UIKit enum PeerMediaCollectionNavigationButtonAction { case beginMessageSelection case cancelMessageSelection } struct PeerMediaCollectionNavigationButton: Equatable { let action: PeerMediaCollectionNavigationButtonAction let buttonItem: UIBarButtonItem static func ==(lhs: PeerMediaCollectionNavigationButton, rhs: PeerMediaCollectionNavigationButton) -> Bool { return lhs.action == rhs.action } } func rightNavigationButtonForPeerMediaCollectionInterfaceState(_ interfaceState: PeerMediaCollectionInterfaceState, currentButton: PeerMediaCollectionNavigationButton?, target: Any?, selector: Selector?) -> PeerMediaCollectionNavigationButton? { if let _ = interfaceState.selectionState { if let currentButton = currentButton, currentButton.action == .cancelMessageSelection { return currentButton } else { return PeerMediaCollectionNavigationButton(action: .cancelMessageSelection, buttonItem: UIBarButtonItem(title: interfaceState.strings.Common_Cancel, style: .plain, target: target, action: selector)) } } else { if let currentButton = currentButton, currentButton.action == .beginMessageSelection { return currentButton } else { return PeerMediaCollectionNavigationButton(action: .beginMessageSelection, buttonItem: UIBarButtonItem(title: interfaceState.strings.Common_Select, style: .plain, target: target, action: selector)) } } }