Skip to content

Commit

Permalink
Merge branch 'feature/pwn-8127' into feature/pwn-684
Browse files Browse the repository at this point in the history
  • Loading branch information
TrGiLong committed Jan 19, 2024
2 parents ae7e935 + 9ece9bc commit 211cf99
Showing 1 changed file with 29 additions and 4 deletions.
33 changes: 29 additions & 4 deletions p2p_wallet/Scenes/Main/Swap/Swap/JupiterSwapCoordinator.swift
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import KeyAppKitCore
import Resolver
import SolanaSwift
import SwiftUI
import UIKit

enum JupiterSwapSource: String {
case actionPanel = "Action_Panel", tapMain = "Tap_Main", tapToken = "Tap_Token", solend = "Solend",
Expand Down Expand Up @@ -51,6 +52,7 @@ final class JupiterSwapCoordinator: Coordinator<Void> {
private var viewModel: SwapViewModel!

private var swapSettingBarButton: UIBarButtonItem!
private var shareBarButton: UIBarButtonItem!

init(navigationController: UINavigationController, params: JupiterSwapParameters) {
self.navigationController = navigationController
Expand Down Expand Up @@ -135,12 +137,21 @@ final class JupiterSwapCoordinator: Coordinator<Void> {
func style(controller: UIViewController) {
controller.title = L10n.swap
controller.navigationItem.largeTitleDisplayMode = .never

swapSettingBarButton = UIBarButtonItem(
image: .init(resource: .receipt),
style: .plain,
target: self,
action: #selector(receiptButtonPressed)
)

let shareButton = UIButton(type: .system)
.setTarget(target: self, action: #selector(shareButtonPressed), for: .touchUpInside)
shareButton.setImage(UIImage(named: "share-1"), for: .normal)
shareButton.setTitleColor(.gray, for: .highlighted)

shareBarButton = UIBarButtonItem(customView: shareButton)

// show rightBarButtonItem only on successful loading
viewModel.$viewState
.map { state -> Bool in
Expand All @@ -152,11 +163,13 @@ final class JupiterSwapCoordinator: Coordinator<Void> {
}
}
.removeDuplicates()
.sink { [weak controller, weak swapSettingBarButton] show in
.sink { [weak controller, weak swapSettingBarButton, weak shareBarButton] show in
guard let swapSettingBarButton, let shareBarButton else { return }

if !show {
controller?.navigationItem.rightBarButtonItem = nil
} else if controller?.navigationItem.rightBarButtonItem == nil {
controller?.navigationItem.rightBarButtonItem = swapSettingBarButton
controller?.navigationItem.rightBarButtonItems = [shareBarButton]
} else {
controller?.navigationItem.rightBarButtonItems = [swapSettingBarButton, shareBarButton]
}
}
.store(in: &subscriptions)
Expand All @@ -171,6 +184,18 @@ final class JupiterSwapCoordinator: Coordinator<Void> {
openSwapSettings()
}

@objc private func shareButtonPressed() {
UIApplication.shared.endEditing()

let from = viewModel.currentState.fromToken.mintAddress
let to = viewModel.currentState.toToken.mintAddress

let items = ["https://s.key.app/swap?from=\(from)&to=\(to)"]
let activityVC = UIActivityViewController(activityItems: items, applicationActivities: nil)

navigationController.present(activityVC, animated: true)
}

private func openChooseToken(fromToken: Bool) {
viewModel.continueUpdateOnDisappear = true
coordinate(to: ChooseSwapTokenCoordinator(
Expand Down

0 comments on commit 211cf99

Please sign in to comment.