mirror of https://github.com/oxen-io/session-ios
				
				
				
			WIP: show media details full screen
							parent
							
								
									16db56572b
								
							
						
					
					
						commit
						1adfc9cfbe
					
				@ -0,0 +1,37 @@
 | 
			
		||||
// Copyright © 2023 Rangeproof Pty Ltd. All rights reserved.
 | 
			
		||||
 | 
			
		||||
import SwiftUI
 | 
			
		||||
import UIKit
 | 
			
		||||
import SessionUtilitiesKit
 | 
			
		||||
 | 
			
		||||
struct ViewControllerHolder {
 | 
			
		||||
    weak var value: UIViewController?
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
struct ViewControllerKey: EnvironmentKey {
 | 
			
		||||
    static var defaultValue: ViewControllerHolder {
 | 
			
		||||
        return ViewControllerHolder(value: CurrentAppContext().mainWindow?.rootViewController)
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
extension EnvironmentValues {
 | 
			
		||||
    public var viewController: UIViewController? {
 | 
			
		||||
        get { return self[ViewControllerKey.self].value }
 | 
			
		||||
        set { self[ViewControllerKey.self].value = newValue }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
extension UIViewController {
 | 
			
		||||
    public func present<Content: View>(style: UIModalPresentationStyle = .automatic, @ViewBuilder builder: () -> Content) {
 | 
			
		||||
        let toPresent = UIHostingController(rootView: AnyView(EmptyView()))
 | 
			
		||||
        toPresent.modalPresentationStyle = style
 | 
			
		||||
        toPresent.rootView = AnyView(
 | 
			
		||||
            builder()
 | 
			
		||||
                .environment(\.viewController, toPresent)
 | 
			
		||||
        )
 | 
			
		||||
        NotificationCenter.default.addObserver(forName: Notification.Name(rawValue: "dismissModal"), object: nil, queue: nil) { [weak toPresent] _ in
 | 
			
		||||
            toPresent?.dismiss(animated: true, completion: nil)
 | 
			
		||||
        }
 | 
			
		||||
        self.present(toPresent, animated: true, completion: nil)
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
					Loading…
					
					
				
		Reference in New Issue