Added more timeline view SwiftUI previews.

This commit is contained in:
Stefan Ceriu
2022-03-31 11:22:26 +03:00
parent d330950ed3
commit 6243973e36
10 changed files with 83 additions and 23 deletions
@@ -30,7 +30,13 @@ struct EmoteRoomTimelineView: View {
struct EmoteRoomTimelineView_Previews: PreviewProvider {
static var previews: some View {
VStack(spacing: 20.0) {
body
body.preferredColorScheme(.dark)
}
@ViewBuilder
static var body: some View {
VStack(alignment: .leading, spacing: 20.0) {
let timelineItem = EmoteRoomTimelineItem(id: UUID().uuidString,
text: "Short loin ground round tongue hamburger, fatback salami shoulder. Beef turkey sausage kielbasa strip steak. Alcatra capicola pig tail pancetta chislic.",
timestamp: "Now",
@@ -45,6 +51,5 @@ struct EmoteRoomTimelineView_Previews: PreviewProvider {
senderId: "Anne")
EmoteRoomTimelineView(timelineItem: timelineItem)
}
.padding()
}
}
@@ -51,7 +51,13 @@ struct EventBasedTimelineView: View {
struct EventBasedTimelineView_Previews: PreviewProvider {
static var previews: some View {
VStack(spacing: 20.0) {
body
body.preferredColorScheme(.dark)
}
@ViewBuilder
static var body: some View {
VStack(alignment: .leading, spacing: 20.0) {
let timelineItem = TextRoomTimelineItem(id: UUID().uuidString,
text: "Short loin ground round tongue hamburger, fatback salami shoulder. Beef turkey sausage kielbasa strip steak. Alcatra capicola pig tail pancetta chislic.",
timestamp: "Now",
@@ -66,6 +72,5 @@ struct EventBasedTimelineView_Previews: PreviewProvider {
senderId: "Anne")
EventBasedTimelineView(timelineItem: timelineItem)
}
.padding()
}
}
@@ -35,21 +35,43 @@ struct FormattedBodyText: View {
struct FormattedBodyText_Previews: PreviewProvider {
static var previews: some View {
let htmlString = """
body
body.preferredColorScheme(.dark)
}
@ViewBuilder
static var body: some View {
let htmlStrings = [
"""
Text before blockquote
<blockquote>
<b>bold</b> <i>italic</i>
</blockquote>
Text after blockquote
""",
"""
<blockquote>First blockquote with a <a href=\"https://www.matrix.org/\">link</a> in it</blockquote>
<blockquote>Second blockquote with a <a href=\"https://www.matrix.org/\">link</a> in it</blockquote>
<blockquote>Third blockquote with a <a href=\"https://www.matrix.org/\">link</a> in it</blockquote>
""",
"""
<code>Hello world</code>
<p>Text</p>
<code><b>Hello</b> <i>world</i></code>
<p>Text</p>
<code>Hello world</code>
"""]
let attributedStringBuilder = AttributedStringBuilder()
let attributedString = attributedStringBuilder.fromHTML(htmlString)
if let components = attributedStringBuilder.blockquoteCoalescedComponentsFrom(attributedString) {
VStack {
FormattedBodyText(attributedComponents: components)
.fixedSize()
VStack(alignment: .leading, spacing: 24.0) {
ForEach(htmlStrings, id: \.self) { htmlString in
let attributedString = attributedStringBuilder.fromHTML(htmlString)
if let components = attributedStringBuilder.blockquoteCoalescedComponentsFrom(attributedString) {
FormattedBodyText(attributedComponents: components)
.fixedSize()
}
}
}
}
@@ -35,7 +35,13 @@ struct ImageRoomTimelineView: View {
struct ImageRoomTimelineView_Previews: PreviewProvider {
static var previews: some View {
VStack {
body
body.preferredColorScheme(.dark)
}
@ViewBuilder
static var body: some View {
VStack(spacing: 20.0) {
let timelineItem = ImageRoomTimelineItem(id: UUID().uuidString,
text: "Some image",
timestamp: "Now",
@@ -30,7 +30,13 @@ struct NoticeRoomTimelineView: View {
struct NoticeRoomTimelineView_Previews: PreviewProvider {
static var previews: some View {
VStack(spacing: 20.0) {
body
body.preferredColorScheme(.dark)
}
@ViewBuilder
static var body: some View {
VStack(alignment: .leading, spacing: 20.0) {
let timelineItem = NoticeRoomTimelineItem(id: UUID().uuidString,
text: "Short loin ground round tongue hamburger, fatback salami shoulder. Beef turkey sausage kielbasa strip steak. Alcatra capicola pig tail pancetta chislic.",
timestamp: "Now",
@@ -36,6 +36,12 @@ struct PlaceholderAvatarImage: View {
struct PlaceholderAvatarImage_Previews: PreviewProvider {
static var previews: some View {
body
body.preferredColorScheme(.dark)
}
@ViewBuilder
static var body: some View {
PlaceholderAvatarImage(firstCharacter: "X")
.clipShape(Circle())
.frame(width: 150, height: 100)
@@ -44,8 +44,13 @@ struct LabelledDivider: View {
struct SeparatorRoomTimelineView_Previews: PreviewProvider {
static var previews: some View {
body
body.preferredColorScheme(.dark)
}
@ViewBuilder
static var body: some View {
let item = SeparatorRoomTimelineItem(id: UUID().uuidString, text: "This is a separator")
SeparatorRoomTimelineView(timelineItem: item)
}
}
@@ -27,7 +27,13 @@ struct TextRoomTimelineView: View {
struct TextRoomTimelineView_Previews: PreviewProvider {
static var previews: some View {
VStack(spacing: 20.0) {
body
body.preferredColorScheme(.dark)
}
@ViewBuilder
static var body: some View {
VStack(alignment: .leading, spacing: 20.0) {
let timelineItem = TextRoomTimelineItem(id: UUID().uuidString,
text: "Short loin ground round tongue hamburger, fatback salami shoulder. Beef turkey sausage kielbasa strip steak. Alcatra capicola pig tail pancetta chislic.",
timestamp: "Now",
@@ -42,6 +48,5 @@ struct TextRoomTimelineView_Previews: PreviewProvider {
senderId: "Anne")
TextRoomTimelineView(timelineItem: timelineItem)
}
.padding()
}
}