From f3382f97f4879daa129ecdcf02f422ae3a26bcf3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Moska=C5=82a?= <91079590+moskalakamil@users.noreply.github.com> Date: Wed, 18 Mar 2026 18:40:09 +0100 Subject: [PATCH] fix: video in fullscreen freeze after swiping (#4858) * fix: video in fullscreen freezing after swiping * fix(ios): use optional chainin --- .../ios/view/VideoComponentViewObserver.swift | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/packages/react-native-video/ios/view/VideoComponentViewObserver.swift b/packages/react-native-video/ios/view/VideoComponentViewObserver.swift index 2b36c813..b6d4f936 100644 --- a/packages/react-native-video/ios/view/VideoComponentViewObserver.swift +++ b/packages/react-native-video/ios/view/VideoComponentViewObserver.swift @@ -136,6 +136,11 @@ class VideoComponentViewObserver: NSObject, AVPlayerViewControllerDelegate { guard let self = self else { return } if context.isCancelled { + // iOS bug: window.isUserInteractionEnabled is left as false after cancelled fullscreen dismiss + if let window = self.playerViewController?.view.window, !window.isUserInteractionEnabled { + window.isUserInteractionEnabled = true + } + self.delegate?.willEnterFullscreen() return @@ -155,6 +160,11 @@ class VideoComponentViewObserver: NSObject, AVPlayerViewControllerDelegate { guard let self = self else { return } if context.isCancelled { + // iOS bug: window.isUserInteractionEnabled is left as false after cancelled fullscreen transition + if let window = self.playerViewController?.view.window, !window.isUserInteractionEnabled { + window.isUserInteractionEnabled = true + } + self.delegate?.willExitFullscreen() return