Skip to content

In-app snackbar: after dismiss, transparent UIWindow keeps intercepting touches (scroll blocked) #659

@jalolov08

Description

@jalolov08

Bug

After dismissing a Mindbox in-app snackbar, the area where the snackbar was shown can stop receiving touches (e.g. ScrollView / map / buttons behind it become unresponsive). It looks like a transparent overlay remains on top.

We see this consistently in a React Native app (iOS), especially in Release builds: the screen scrolls above/below the snackbar zone, but in the snackbar rectangle scrolling may not work or works only in one direction.

Expected

After dismissing the in-app snackbar, touches should go to the underlying UI (no leftover overlay).

Actual

Touches are intercepted in the snackbar frame after dismiss.

Root cause (likely)

SnackbarPresentationStrategy creates a dedicated UIWindow (frame is set to snackbar size/position). On dismiss it removes the VC view, but does not hide the window. Even if the window is visually empty/transparent, it can still receive touches and block interaction behind it.

File:
Mindbox/InAppMessages/Presentation/Manager/UseCases/PresentationDisplayUseCase/Strategy/SnackbarPresentationStrategy.swift

Current dismiss:

func dismiss(viewController: UIViewController) {
    viewController.view.removeFromSuperview()
    viewController.removeFromParent()
    Logger.common(message: "In-app snackbar presentation dismissed", level: .debug, category: .inAppMessages)
}

Proposed fix (patch)

Hide and detach the snackbar window on dismiss:

 func dismiss(viewController: UIViewController) {
+    let window = viewController.view.window
+
     viewController.view.removeFromSuperview()
     viewController.removeFromParent()
+
+    window?.isUserInteractionEnabled = false
+    window?.isHidden = true
+    window?.rootViewController = nil
+
     Logger.common(message: "In-app snackbar presentation dismissed", level: .debug, category: .inAppMessages)
 }

Environment

  • Mindbox iOS SDK: 2.14.5 (via CocoaPods)
  • App: React Native (Hermes enabled), iOS 26.2

Repro steps (generic)

  1. Show an in-app snackbar.
  2. Dismiss it (close button or swipe).
  3. Try to scroll/tap elements in the exact area where the snackbar was.

If you want, I can provide a small standalone iOS repro project, but the patch above should address the core issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions