[iOS][Wallet] Showing tx confirmation panel after users create tx from wallet webui (#33390)
showing tx confirmation panel after users create tx from wallet webui
This commit is contained in:
@@ -19,6 +19,8 @@ NS_SWIFT_NAME(WalletPageHandler)
|
||||
@protocol WalletPageHandlerBridge
|
||||
@required
|
||||
|
||||
/// Handle when the user creates a new unapproved tx
|
||||
- (void)showApprovePanelUI;
|
||||
/// Handle when the user taps "Back up now" to back up wallet
|
||||
- (void)showWalletBackupUI;
|
||||
/// Handle when the user double taps the lock screen to unlock wallet
|
||||
|
||||
+3
@@ -56,6 +56,9 @@ extension BrowserViewController: TabManagerDelegate {
|
||||
}
|
||||
tab.walletWebUIHelper = .init(
|
||||
tab: tab,
|
||||
showApprovePanelUIHandler: { [weak self] tab in
|
||||
self?.showApprovePanelUI(tab: tab)
|
||||
},
|
||||
showWalletBackUpHandler: { [weak self] in
|
||||
self?.showWalletBackupUI()
|
||||
},
|
||||
|
||||
@@ -734,6 +734,16 @@ extension TabBrowserData: BraveWalletKeyringServiceObserver {
|
||||
|
||||
// MARK: Wallet WebUI action handlers
|
||||
extension BrowserViewController {
|
||||
func showApprovePanelUI(tab: (any TabState)?) {
|
||||
guard let tab,
|
||||
let origin = tab.browserData?.getOrigin(),
|
||||
let tabDappStore = tab.tabDappStore
|
||||
else {
|
||||
return
|
||||
}
|
||||
presentWalletPanel(from: origin, with: tabDappStore)
|
||||
}
|
||||
|
||||
func showWalletBackupUI() {
|
||||
presentNativeWallet(webUIAction: .backup)
|
||||
}
|
||||
|
||||
@@ -8,12 +8,14 @@ import BraveCore
|
||||
|
||||
public class WalletWebUIHelper: NSObject, TabObserver, WalletPageHandler {
|
||||
private(set) weak var tab: (any TabState)?
|
||||
private var showApprovePanelUIHandler: (((_ tab: (any TabState)?) -> Void))?
|
||||
private var showWalletBackUpHandler: (() -> Void)?
|
||||
private var unlockWalletHandler: (() -> Void)?
|
||||
private var showOnboardingHandler: ((Bool) -> Void)?
|
||||
|
||||
public init?(
|
||||
tab: some TabState,
|
||||
showApprovePanelUIHandler: ((_ tab: (any TabState)?) -> Void)?,
|
||||
showWalletBackUpHandler: (() -> Void)?,
|
||||
unlockWalletHandler: (() -> Void)?,
|
||||
showOnboardingHandler: ((Bool) -> Void)?
|
||||
@@ -22,6 +24,7 @@ public class WalletWebUIHelper: NSObject, TabObserver, WalletPageHandler {
|
||||
return nil
|
||||
}
|
||||
self.tab = tab
|
||||
self.showApprovePanelUIHandler = showApprovePanelUIHandler
|
||||
self.showWalletBackUpHandler = showWalletBackUpHandler
|
||||
self.unlockWalletHandler = unlockWalletHandler
|
||||
self.showOnboardingHandler = showOnboardingHandler
|
||||
@@ -44,6 +47,10 @@ public class WalletWebUIHelper: NSObject, TabObserver, WalletPageHandler {
|
||||
}
|
||||
|
||||
// MARK: - WalletPageHandler
|
||||
public func showApprovePanelUI() {
|
||||
showApprovePanelUIHandler?(tab)
|
||||
}
|
||||
|
||||
public func showWalletBackupUI() {
|
||||
showWalletBackUpHandler?()
|
||||
}
|
||||
|
||||
@@ -18,7 +18,10 @@ WalletPageHandler::WalletPageHandler(
|
||||
WalletPageHandler::~WalletPageHandler() = default;
|
||||
|
||||
void WalletPageHandler::ShowApprovePanelUI() {
|
||||
// No need for iOS since it's handled on the Swift side.
|
||||
id<WalletPageHandlerBridge> bridge =
|
||||
brave_wallet::PageHandlerBridgeHolder::GetOrCreateForWebState(web_state_)
|
||||
->bridge();
|
||||
[bridge showApprovePanelUI];
|
||||
}
|
||||
|
||||
void WalletPageHandler::ShowWalletBackupUI() {
|
||||
|
||||
Reference in New Issue
Block a user