diff --git a/Sources/SwiftUIBackports/Shared/Link/Link.swift b/Sources/SwiftUIBackports/Shared/Link/Link.swift new file mode 100644 index 0000000..828b6fe --- /dev/null +++ b/Sources/SwiftUIBackports/Shared/Link/Link.swift @@ -0,0 +1,109 @@ +import SwiftUI +import SwiftBackports + +extension Backport { + /// A control for navigating to a URL. + /// + /// Create a link by providing a destination URL and a title. The title + /// tells the user the purpose of the link, and can be a string, a title + /// key that produces a localized string, or a view that acts as a label. + /// The example below creates a link to `example.com` and displays the + /// title string as a link-styled view: + /// + /// Backport.Link("View Our Terms of Service", + /// destination: URL(string: "https://www.example.com/TOS.html")!) + /// + /// When a user taps or clicks a `Link`, the default behavior depends on the + /// contents of the URL. For example, SwiftUI opens a Universal Link in the + /// associated app if possible, or in the user's default web browser if not. + /// Alternatively, you can override the default behavior by setting the + /// ``EnvironmentValues/openURL`` environment value with a custom + /// ``OpenURLAction``: + /// + /// Backport.Link("Visit Our Site", destination: URL(string: "https://www.example.com")!) + /// .environment(\.backportOpenURL, Backport.OpenURLAction { url in + /// print("Open \(url)") + /// return .handled + /// }) + /// + /// As with other views, you can style links using standard view modifiers + /// depending on the view type of the link's label. For example, a ``Text`` + /// label could be modified with a custom ``View/font(_:)`` or + /// ``View/foregroundColor(_:)`` to customize the appearance of the link in + /// your app's UI. + @available(iOS, deprecated: 14) + @available(tvOS, deprecated: 14) + @available(macOS, deprecated: 11) + @available(watchOS, deprecated: 7) + public struct Link