Use collection.url rather than server + collection alias in share sheets

This commit is contained in:
Angelo Stavrow 2021-03-18 15:43:12 -04:00
parent dd4a82ac80
commit 55d2659448
No known key found for this signature in database
GPG Key ID: 1A49C7064E060EEE
2 changed files with 19 additions and 6 deletions

View File

@ -207,11 +207,13 @@ struct PostEditorView: View {
if let postSlug = post.slug,
let postCollectionAlias = post.collectionAlias {
// This post is in a collection, so share the URL as server/collectionAlias/postSlug.
urlString = "\(model.account.server)/\((postCollectionAlias))/\((postSlug))"
// This post is in a collection, so share the URL as baseURL/postSlug.
let urls = collections.filter { $0.alias == postCollectionAlias }
let baseURL = urls.first?.url ?? "\(model.account.server)/\(postCollectionAlias)/"
urlString = "\(baseURL)\(postSlug)"
} else {
// This is a draft post, so share the URL as server/postID
urlString = "\(model.account.server)/\((postId))"
urlString = "\(model.account.server)/\(postId)"
}
guard let data = URL(string: urlString) else { return }

View File

@ -106,9 +106,20 @@ struct ActivePostToolbarView: View {
private func createPostUrl() -> [Any] {
guard let postId = model.selectedPost?.postId else { return [] }
guard let urlString = model.selectedPost?.slug != nil ?
"\(model.account.server)/\((model.selectedPost?.collectionAlias)!)/\((model.selectedPost?.slug)!)" :
"\(model.account.server)/\((postId))" else { return [] }
var urlString: String
if let postSlug = model.selectedPost?.slug,
let postCollectionAlias = model.selectedPost?.collectionAlias {
// This post is in a collection, so share the URL as baseURL/postSlug
let urls = collections.filter { $0.alias == postCollectionAlias }
let baseURL = urls.first?.url ?? "\(model.account.server)/\(postCollectionAlias)/"
urlString = "\(baseURL)\(postSlug)"
} else {
// This is a draft post, sho share the URL as server/postID
urlString = "\(model.account.server)/\(postId)"
}
guard let data = URL(string: urlString) else { return [] }
return [data as NSURL]
}