 
     static let reuse = "cell"
 
-    let addButton = ResponderButton()
-    let collectionView: UICollectionView = {
+    public var delegate: IssueCommentReactionCellDelegate? = nil
+
+    private let addButton = ResponderButton()
+    private let collectionView: UICollectionView = {
         let layout = UICollectionViewFlowLayout()
         layout.scrollDirection = .horizontal
         layout.minimumInteritemSpacing = Styles.Sizes.columnSpacing / 2.0

import SnapKit
import IGListKit

final class IssueCommentReactionCell: UICollectionViewCell,
IGListBindable,
UICollectionViewDataSource,

    func onAddButton() {
        addButton.becomeFirstResponder()

        let actions = [
            ReactionType.thumbsUp.rawValue: #selector(IssueCommentReactionCell.onThumbsUp),
            ReactionType.thumbsDown.rawValue: #selector(IssueCommentReactionCell.onThumbsDown),
            ReactionType.laugh.rawValue: #selector(IssueCommentReactionCell.onLaugh),
            ReactionType.hooray.rawValue: #selector(IssueCommentReactionCell.onHooray),
            ReactionType.confused.rawValue: #selector(IssueCommentReactionCell.onConfused),
            ReactionType.heart.rawValue: #selector(IssueCommentReactionCell.onHeart),
        ]

        let menu = UIMenuController.shared
        menu.menuItems = actions.map { UIMenuItem(title: $0, action: $1) }
        menu.setTargetRect(addButton.bounds, in: addButton)
        menu.setMenuVisible(true, animated: true)
    }

    override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool {
        switch action {
        case #selector(IssueCommentReactionCell.onThumbsUp),
             #selector(IssueCommentReactionCell.onThumbsDown),
             #selector(IssueCommentReactionCell.onLaugh),
             #selector(IssueCommentReactionCell.onHooray),
             #selector(IssueCommentReactionCell.onConfused),
             #selector(IssueCommentReactionCell.onHeart):
            return true
        default: return false
        }
    }

    func onThumbsUp() {
        delegate?.didSelect(cell: self, reaction: .thumbsUp)
    }

    func onThumbsDown() {
        delegate?.didSelect(cell: self, reaction: .thumbsDown)
    }

    func onLaugh() {
        delegate?.didSelect(cell: self, reaction: .laugh)
    }

    func onHooray() {
        delegate?.didSelect(cell: self, reaction: .hooray)
    }

    func onConfused() {
        delegate?.didSelect(cell: self, reaction: .confused)
    }

    func onHeart() {
        delegate?.didSelect(cell: self, reaction: .heart)
    }

    // MARK: IGListBindable
