Merge pull request #180 from writeas/use-collection-url-for-share-sheet

Use collection.url rather than server + collection alias in share sheets
This commit is contained in:
Angelo Stavrow 2021-04-07 10:56:46 -04:00 committed by GitHub
commit 94c875bc65
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 6 deletions

View File

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

View File

@ -106,9 +106,20 @@ struct ActivePostToolbarView: View {
private func createPostUrl() -> [Any] { private func createPostUrl() -> [Any] {
guard let postId = model.selectedPost?.postId else { return [] } guard let postId = model.selectedPost?.postId else { return [] }
guard let urlString = model.selectedPost?.slug != nil ?
"\(model.account.server)/\((model.selectedPost?.collectionAlias)!)/\((model.selectedPost?.slug)!)" : var urlString: String
"\(model.account.server)/\((postId))" else { return [] }
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 [] } guard let data = URL(string: urlString) else { return [] }
return [data as NSURL] return [data as NSURL]
} }