Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class DisplayCellNode: ASCellNode {
- // UI
- let buttonNode = ASButtonNode()
- // Props
- weak var interactor: InteractorLogics!
- private var presenter: DisplayCellPresenter = .init()
- override func didLoad() {
- super.didLoad()
- buttonNode.addTarget(self, didTapButton:, .touchUpInside)
- }
- @objc func didTapButton() {
- // Request -> Response
- let response = interactor.didTapButton(id: "user-12345")
- // Response -> ViewModel
- let viewModel = response
- .then { [weak self] user in
- return self?.username(user: user) ?? brokenPromise()
- }
- .recover { [weak self] error in
- return self?.errorMessage(error: error) ?? brokenPromise()
- }
- // ViewModel -> Rendering
- viewModel
- .done { [weak self] username in
- self?.buttonNode.text = username
- self?.setNeedsLayout()
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement