import AppKit import WebKit @MainActor final class RedditWebViewStore { static let shared = RedditWebViewStore() private(set) var container: RedditWebViewContainer? private var isMediaPlaybackSuspended = false private init() {} func containerIfNeeded() -> RedditWebViewContainer { if let container { return container } let webView = RedditWebViewManager.makeWebView() let newContainer = RedditWebViewContainer(webView: webView) container = newContainer return newContainer } func suspendMediaPlaybackForWindowMinimize() { guard let webView = container?.webView, !isMediaPlaybackSuspended else { return } isMediaPlaybackSuspended = true webView.setAllMediaPlaybackSuspended(true, completionHandler: nil) } func resumeMediaPlaybackAfterWindowDeminiaturize() { guard let webView = container?.webView, isMediaPlaybackSuspended else { return } isMediaPlaybackSuspended = false webView.setAllMediaPlaybackSuspended(false, completionHandler: nil) } }