import SwiftUI
import UIKit

private struct SafeAreaInsetsKey: EnvironmentKey {
    static var defaultValue: EdgeInsets {
        UIWindow.current.map { EdgeInsets($0.safeAreaInsets) } ?? EdgeInsets()
    }
}

public extension EnvironmentValues {
    /// https://stackoverflow.com/a/68709575
    var safeAreaInsets: EdgeInsets {
        self[SafeAreaInsetsKey.self]
    }
}

extension EdgeInsets {
    init(_ insets: UIEdgeInsets) {
        self.init(top: insets.top, leading: insets.left, bottom: insets.bottom, trailing: insets.right)
    }
}
