mirror of
https://github.com/permissionlesstech/bitchat.git
synced 2026-07-24 22:45:19 +00:00
Keep share extension helpers target-local
This commit is contained in:
@@ -45,10 +45,6 @@ struct SharedContentPayload: Codable, Sendable, Equatable, Identifiable {
|
|||||||
SharedContentPayload(kind: .text, content: content, createdAt: createdAt)
|
SharedContentPayload(kind: .text, content: content, createdAt: createdAt)
|
||||||
}
|
}
|
||||||
|
|
||||||
static func url(_ url: URL, title: String?, createdAt: Date = Date()) -> SharedContentPayload {
|
|
||||||
SharedContentPayload(kind: .url, content: url.absoluteString, title: title, createdAt: createdAt)
|
|
||||||
}
|
|
||||||
|
|
||||||
var composerText: String { content }
|
var composerText: String { content }
|
||||||
|
|
||||||
var preview: String {
|
var preview: String {
|
||||||
@@ -148,11 +144,6 @@ final class SharedContentStore {
|
|||||||
self.decoder = JSONDecoder()
|
self.decoder = JSONDecoder()
|
||||||
}
|
}
|
||||||
|
|
||||||
convenience init?(suiteName: String) {
|
|
||||||
guard let defaults = UserDefaults(suiteName: suiteName) else { return nil }
|
|
||||||
self.init(defaults: defaults)
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Replaces any older pending share with a validated, bounded envelope.
|
/// Replaces any older pending share with a validated, bounded envelope.
|
||||||
func stage(_ payload: SharedContentPayload, now: Date = Date()) throws {
|
func stage(_ payload: SharedContentPayload, now: Date = Date()) throws {
|
||||||
try payload.validate(now: now)
|
try payload.validate(now: now)
|
||||||
|
|||||||
@@ -148,8 +148,9 @@ final class ShareViewController: UIViewController {
|
|||||||
|
|
||||||
// MARK: - Save + Finish
|
// MARK: - Save + Finish
|
||||||
private func saveAndFinish(url: URL, title: String?) {
|
private func saveAndFinish(url: URL, title: String?) {
|
||||||
let payload = SharedContentPayload.url(
|
let payload = SharedContentPayload(
|
||||||
url,
|
kind: .url,
|
||||||
|
content: url.absoluteString,
|
||||||
title: title ?? url.host ?? Strings.sharedLinkTitleFallback
|
title: title ?? url.host ?? Strings.sharedLinkTitleFallback
|
||||||
)
|
)
|
||||||
stageAndFinish(payload)
|
stageAndFinish(payload)
|
||||||
@@ -160,10 +161,11 @@ final class ShareViewController: UIViewController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private func stageAndFinish(_ payload: SharedContentPayload) {
|
private func stageAndFinish(_ payload: SharedContentPayload) {
|
||||||
guard let store = SharedContentStore(suiteName: Self.groupID) else {
|
guard let defaults = UserDefaults(suiteName: Self.groupID) else {
|
||||||
finishWithMessage(Strings.failedToSave)
|
finishWithMessage(Strings.failedToSave)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
let store = SharedContentStore(defaults: defaults)
|
||||||
|
|
||||||
do {
|
do {
|
||||||
try store.stage(payload)
|
try store.stage(payload)
|
||||||
|
|||||||
Reference in New Issue
Block a user