1
Fork 0

Improve post header appearance

This commit is contained in:
redstrate 2020-06-03 23:17:23 -04:00
parent e38c45b353
commit 2d9178ad07
2 changed files with 32 additions and 11 deletions

View file

@ -30,6 +30,7 @@ struct Post: Decodable, Identifiable {
let originalUsername: String? let originalUsername: String?
let originalPost: OriginalPost? let originalPost: OriginalPost?
let avatarUrl: String
func isReblogged() -> Bool { func isReblogged() -> Bool {
return originalUsername != nil return originalUsername != nil
@ -44,8 +45,10 @@ struct Post: Decodable, Identifiable {
} }
} }
let mediaURL = "https://homepages.cae.wisc.edu/~ece533/images/airplane.png"
let testMedia = Media(id: 0, let testMedia = Media(id: 0,
url: "https://homepages.cae.wisc.edu/~ece533/images/airplane.png") url: mediaURL)
let fooPost = Post(id: 0, let fooPost = Post(id: 0,
title: "Foo", title: "Foo",
@ -54,7 +57,8 @@ let fooPost = Post(id: 0,
media: [testMedia], media: [testMedia],
username: "foobar", username: "foobar",
originalUsername: nil, originalUsername: nil,
originalPost: nil) originalPost: nil,
avatarUrl: mediaURL)
let fooPostReblog = Post(id: 1, let fooPostReblog = Post(id: 1,
title: nil, title: nil,
@ -63,4 +67,5 @@ let fooPostReblog = Post(id: 1,
media: [testMedia], media: [testMedia],
username: "foobar", username: "foobar",
originalUsername: "foobar2", originalUsername: "foobar2",
originalPost: nil) originalPost: nil,
avatarUrl: mediaURL)

View file

@ -12,13 +12,29 @@ struct PostView: View {
var body: some View { var body: some View {
VStack { VStack {
if post.isReblogged() { HStack {
Text("Reblogged from " + post.originalUsername!) RemoteImage(type: .url(URL(string: post.avatarUrl.encodeUrl()!)!), errorView: { error in
} Text(error.localizedDescription)
}, imageView: { image in
if post.getTitle() != nil { image
Text(post.getTitle()!) .resizable()
} .aspectRatio(contentMode: .fit)
}, loadingView: {
Text("Loading...")
}).frame(width: 50.0, height: 50.0).padding(.leading)
VStack(alignment: .leading) {
if post.isReblogged() {
Text("Reblogged from " + post.originalUsername!)
}
if post.getTitle() != nil {
Text(post.getTitle()!)
}
}
Spacer()
}.frame(maxWidth: .infinity)
VStack { VStack {
ForEach(post.media) { media in ForEach(post.media) { media in
@ -35,7 +51,7 @@ struct PostView: View {
} }
} }
} }
} }.frame(maxWidth: .infinity)
} }
} }