import Foundation import SwiftUI import UIKit class GoalShareService { static let shared = GoalShareService() private init() {} @MainActor func shareGoal( name: String, progress: Double, currentValue: Decimal, targetValue: Decimal ) { guard let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene, let viewController = windowScene.windows.first?.rootViewController else { return } let card = GoalShareCardView( name: name, progress: progress, currentValue: currentValue, targetValue: targetValue ) if #available(iOS 16.0, *) { let renderer = ImageRenderer(content: card) let scale = viewController.view.window?.windowScene?.screen.scale ?? viewController.traitCollection.displayScale renderer.scale = scale if let image = renderer.uiImage { let activityVC = UIActivityViewController(activityItems: [image], applicationActivities: nil) viewController.present(activityVC, animated: true) } } else { let text = "I am \(Int(progress * 100))% towards \(name) on Portfolio Journal!" let activityVC = UIActivityViewController(activityItems: [text], applicationActivities: nil) viewController.present(activityVC, animated: true) } } }