// // ModalLaunchable.swift // VDS // // Created by Kanamarlapudi, Vasavi on 09/09/24. // import Foundation import UIKit public protocol ModalLaunchable { func presentModal(surface: Surface, modalModel: Modal.ModalModel, presenter: UIView?) } extension ModalLaunchable { public func presentModal(surface: Surface, modalModel: Modal.ModalModel, presenter: UIView? = nil) { if let presenting = UIApplication.topViewController() { let modalViewController = ModalDialogViewController(nibName: nil, bundle: nil).with { $0.surface = surface $0.modalModel = modalModel $0.presenter = presenter $0.modalPresentationStyle = UIDevice.isIPad && !modalModel.fullScreenDialog ? .overCurrentContext : .fullScreen $0.modalTransitionStyle = .crossDissolve } presenting.present(modalViewController, animated: true) } } }