Dactyloidae/mobile/ios/Storage/Sharing.swift
2026-06-26 21:04:09 -07:00

30 lines
909 B
Swift

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
import Foundation
import UIKit
import Shared
// A small structure to encapsulate all the possible data that we can get
// from an application sharing a web page or a URL.
public struct ShareItem {
public let url: String
public let title: String?
public let favicon: Favicon?
public init(url: String, title: String?, favicon: Favicon?) {
self.url = url
self.title = title
self.favicon = favicon
}
// We only support sharing HTTP and HTTPS URLs, as well as data URIs.
public var isShareable: Bool {
return URL(string: url)?.isWebPage() ?? false
}
}
public protocol ShareToDestination {
func shareItem(_ item: ShareItem) -> Success
}