Skip to content

Commit

Permalink
fix: disable opening modal until message rendered (#4)
Browse files Browse the repository at this point in the history
  • Loading branch information
yeul authored Sep 27, 2023
1 parent da5fe52 commit 3d09576
Showing 1 changed file with 13 additions and 0 deletions.
13 changes: 13 additions & 0 deletions Sources/PayPalMessages/PayPalMessageViewModel.swift
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,9 @@ class PayPalMessageViewModel: PayPalMessageModalEventDelegate {
didSet { queueUpdate(from: oldValue, to: devTouchpoint) }
}

/// Update the messageView's interactivity based on the boolean flag. Disabled by default.
var isMessageViewInteractive = false

/// returns the parameters for the style and content the message's Attributed String according to the server response
var messageParameters: PayPalMessageViewParameters? { makeViewParameters() }

Expand Down Expand Up @@ -262,6 +265,9 @@ class PayPalMessageViewModel: PayPalMessageModalEventDelegate {
stateDelegate.onError(messageView, error: error)
}

// Disable the tap gesture
isMessageViewInteractive = false

delegate?.refreshContent()
}

Expand All @@ -283,6 +289,9 @@ class PayPalMessageViewModel: PayPalMessageModalEventDelegate {
requestDuration: Int((messageResponse?.requestDuration ?? 1 / 1000) * -1000)
))

// Enable the tap gesture
isMessageViewInteractive = true

modal?.setConfig(makeModalConfig())

log(.info, "onMessageRequestReceived is \(String(describing: response.defaultMainContent))")
Expand Down Expand Up @@ -397,6 +406,10 @@ class PayPalMessageViewModel: PayPalMessageModalEventDelegate {
}

func showModal() {
guard isMessageViewInteractive else {
return
}

if let eventDelegate, let messageView {
eventDelegate.onClick(messageView)
}
Expand Down

0 comments on commit 3d09576

Please sign in to comment.